Screen Area Record
in
Core Library Questions
•
1 year ago
In my program I cant record to pdf... I would appreciate some help.
I would like to be able to record only an area of the screen but I dont know if thats possible :(
- import processing.pdf.*;
- import controlP5.*;
- PFont fonte;
- PImage img;
- PImage controlo;
- float peso, altura, margem, angulo;
- float ix, iy, fx, fy, fsx, fsy, isx, isy;
- int valor=1;
- ControlP5 controlP5;
- RadioButton radio;
- ColorPicker cp;
- public int r = 255;
- public int g = 255;
- public int b = 255;
- public int tamanho = 80;
- public color cor_logo = 0;
- public color cor_fonte = 0;
- boolean toggleValue = false;
- void setup() {
- size(800,400);
- frameRate(25);
- smooth();
- fonte = loadFont( "FedraSansStd-Bold-48.vlw" );
- controlo = loadImage("data/www.png");
- controlP5 = new ControlP5(this);
- controlP5.addToggle("ddd",false,width-70,height-70,20,20);
- controlP5.setAutoDraw(false);
- cp = controlP5.addColorPicker("picker",40,height-70,100,10);
- // Controller mySlider_red = controlP5.addSlider("r",0,255,40,height-70,100,10);
- // Controller mySlider_green = controlP5.addSlider("g",0,255,40,height-57,100,10);
- // Controller mySlider_blue = controlP5.addSlider("b",0,255,40,height-44,100,10);
- radio = controlP5.addRadioButton("radioButton",180,height-70);
- radio.setColorForeground(color(0,0,255,0));
- radio.setColorBackground(color(255,255,255,0));
- radio.setColorActive(color(255,255,0,200));
- radio.setColorLabel(color(122));
- radio.setItemsPerRow(7);
- radio.setSpacingColumn(20);
- addToRadioButton(radio,"1",1);
- addToRadioButton(radio,"2",2);
- addToRadioButton(radio,"3",3);
- addToRadioButton(radio,"4",4);
- addToRadioButton(radio,"5",5);
- addToRadioButton(radio,"6",6);
- addToRadioButton(radio,"7",7);
- addToRadioButton(radio,"8",8);
- addToRadioButton(radio,"9",9);
- addToRadioButton(radio,"10",10);
- addToRadioButton(radio,"11",11);
- addToRadioButton(radio,"12",12);
- addToRadioButton(radio,"13",13);
- addToRadioButton(radio,"14",14);
- }
- void addToRadioButton(RadioButton theRadioButton, String theName, int theValue ) {
- Toggle t = theRadioButton.addItem(theName,theValue);
- t.captionLabel().style().backgroundWidth = 0;
- }
- void controlEvent(ControlEvent theEvent) {
- valor = (int(theEvent.group().value()));
- println(valor);
- }
- void keyPressed() {
- switch(key) {
- case('1'):
- cp.setArrayValue(new float[] {120,0,120,255});
- break;
- case('2'):
- cp.setColorValue(color(255,0,0,255));
- break;
- }
- }
- void draw() {
- background(cp.getColorValue());
- //fundo dos controlos
- fill(122);
- noStroke();
- rect(0,height-100,width,height);
- image(controlo,180,330);
- controlP5.draw();
- if(valor!=0){
- altura = 550; //altura do quadro maior
- angulo = 25; //curvatura dos quadro
- peso = 550/(80/2.5); //espessura do traço dos quadros
- ix = peso; //posição inicial x do quadro maior
- iy = peso; //posição inicial y do quadro maior
- margem = 10; //distancia minima entre quadro maior e menor
- //controlo
- if (altura*1.66 > width/2){
- altura = (width/2)/1.66-peso-margem; //quadro maior com tamanho igual a menos
- //de metade do comprimento útil
- }
- fx = ix+altura*1.66; //posição final x do quadro maior
- fy = iy+altura; //posição final y do quadro maior
- //calculo aleatorio da posiçao do quadro menor
- //que se localizará no interior do quadro maior sem lhe tocar
- fsx = (altura/2)*1.37;
- fsy = (altura/2);
- isx = random(ix+margem,fx-fsx);
- isy = random(iy+margem,fy-fsy);
- //println((iy+margem)+" "+(fy-margem-fsy));
- switch(valor) {
- case 1:
- cor_logo=color(0); cor_fonte=color(0);
- img = loadImage("data/pp.png");
- valor=0;
- break;
- case 2:
- cor_logo=color(122); cor_fonte=color(0);
- img = loadImage("data/p2.png");
- valor=0;
- case 3:
- cor_logo=color(cp.getColorValue()); cor_fonte=color(0);
- img = loadImage("data/p1.png");
- valor=0;
- break;
- case 4:
- cor_logo=color(r,g,b); cor_fonte=color(0);
- img = loadImage("data/p3.png");
- valor=0;
- break;
- case 5:
- cor_logo=color(r,g,b); cor_fonte=color(0);
- img = loadImage("data/p4.png");
- valor=0;
- break;
- case 6:
- cor_logo=color(r,g,b); cor_fonte=color(0);
- img = loadImage("data/p5.png");
- valor=0;
- break;
- case 7:
- cor_logo=color(r,g,b); cor_fonte=color(0);
- img = loadImage("data/p6.png");
- valor=0;
- break;
- case 8:
- cor_logo=color(255); cor_fonte=color(255);
- img = loadImage("data/bb.png");
- valor=0;
- break;
- case 9:
- cor_logo=color(r,g,b); cor_fonte=color(255);
- img = loadImage("data/b1.png");
- valor=0;
- break;
- case 10:
- cor_logo=color(r,g,b); cor_fonte=color(255);
- img = loadImage("data/b2.png");
- valor=0;
- break;
- case 11:
- cor_logo=color(r,g,b); cor_fonte=color(255);
- img = loadImage("data/b3.png");
- valor=0;
- break;
- case 12:
- cor_logo=color(r,g,b); cor_fonte=color(255);
- img = loadImage("data/b4.png");
- valor=0;
- break;
- case 13:
- cor_logo=color(r,g,b); cor_fonte=color(255);
- img = loadImage("data/b5.png");
- valor=0;
- break;
- case 14:
- cor_logo=color(r,g,b); cor_fonte=color(255);
- img = loadImage("data/b6.png");
- valor=0;
- break;
- }
- }
- image(img,ix,iy);
- //rectangulo maior
- noFill();
- //stroke(cor_logo);
- //strokeWeight(peso);
- //roundedRect(ix, iy, fx, fy, angulo, angulo);
- //rectangulo menor
- strokeWeight(1);
- fill(cor_logo);
- roundedRect(isx, isy, fsx, fsy, angulo, angulo);
- //texto
- String casa = "casa" ;
- fill(cor_fonte);
- text ( casa , width/2+20, isy+47);
- String cinema = "cinema" ;
- textFont(fonte,tamanho);
- text ( cinema , width/2+20, isy+106);
- fill(122);
- rect(0,height-38,width,height);
- }
- //rectangulo arredondado
- void roundedRect(float x, float y, float w, float h, float rx, float ry)
- {
- beginShape();
- vertex(x,y+ry); //top of left side
- bezierVertex(x,y,x,y,x+rx,y); //top left corner
- vertex(x+w-rx,y); //right of top side
- bezierVertex(x+w,y,x+w,y,x+w,y+ry); //top right corner
- vertex(x+w,y+h-ry); //bottom of right side
- bezierVertex(x+w,y+h,x+w,y+h,x+w-rx,y+h); //bottom right corner
- vertex(x+rx,y+h); //left of bottom side
- bezierVertex(x,y+h,x,y+h,x,y+h-ry); //bottom left corner
- endShape(CLOSE);
- }
- void toggle(boolean theFlag) {
- beginRecord(PDF, "filename.pdf");
- endRecord();
- }
1