如何在Processing中捕获草图上的特定区域

时间:2014-06-08 18:56:43

标签: screenshot processing processing.js

我想截取草图中的特定区域(处理中)。 使用save();saveFrame();引用我无法做到,因为它们捕获了整个区域,但我只需要一个较小的特定要捕获。怎么做得好?

2 个答案:

答案 0 :(得分:2)

检查处理参考。有一个名为get的函数可以在PImages或绘图屏幕上调用。你没有提到是否要捕捉一些奇怪的形状或矩形,所以我假设一个标准的矩形。根据它的documentation,你想要的是:

语法:get(x,y,w,h)

<强>参数

  • x int:像素的x坐标
  • y int:像素的y坐标
  • w int:要获取的像素矩形的宽度
  • h int:要获取的像素矩形的高度

答案 1 :(得分:1)

正如kevinsa5所说,get(x, y, w, h)是要走的路,为了保存它,你可以使用PImage来保存捕获,如:

int sliceW = 50;
int sliceH = 50;
int number = 1 ;

PImage slice;

void setup(){
  size (300, 300);
  slice = createImage(sliceW, sliceH, ARGB);
  noFill();
}

void draw(){
  stroke(random(10,90),random(100,200),random(80,120));
  line(0, frameCount%height, width, frameCount%height );
}

void mouseClicked(){
captureAndSave(mouseX, mouseY, sliceW, sliceH);
}

void captureAndSave(int x, int y, int w, int h){
  slice = get(x, y, w, h);
  slice.save("slice" + nf(number, 4) + ".png");
  number++;
  println("saved!");
}