提问者:小点点

用PGraphics制作PImage的处理


我正在尝试一个简单的图像掩蔽,上面有一个圆形。

我不明白为什么它不起作用。图像打印正确,但不是面具的歌声。这是我的代码:

PImage lion;
PGraphics mask;

void setup() {  
  size(720, 380);

  lion = loadImage("lion.jpg");

  mask = createGraphics(720, 380);
  mask.beginDraw();
  mask.ellipse(0, 0, 150, 150);
  mask.fill(0, 0, 0);
  mask.endDraw();

  mask.mask(lion);
}

void draw() {
  image(lion, 0, 0);
}

狮子图片只是来自谷歌的随机图片。


共1个答案

匿名用户

您必须将掩码应用于lion图像,而不是将lion图像作为掩码应用于掩码
ellipse()的前2个参数是椭圆的x和y中心坐标。
用黑色背景填充整个掩码,然后在掩码的中心绘制一个白色椭圆:

void setup() {
    size(720, 380);

    lion = loadImage("lion.jpg");
    int w = lion.width;
    int h = lion.height;

    mask = createGraphics(w, h);
    mask.beginDraw();
    mask.background(0);
    mask.fill(255);
    mask.ellipse(w/2, h/2, w, h);
    mask.endDraw();

    lion.mask(mask);
}

void draw() {
    background(0);
    image(lion, 0, 0);
}