【问题标题】:Processing:Transparent Image Array处理:透明图像阵列
【发布时间】:2018-05-01 16:26:07
【问题描述】:

我是处理新手,我被困在这个问题上:

目标:我想做一个透明图像数组,每次mousePressed()后一次显示一个

问题:发生的情况是由于所有图像都具有 Alpha 透明度,它们重叠并且存在累积效应。我想要做的,理想情况下是清除它,然后显示另一个图像。

PGraphics pg;
PImage[] 
myImageArray = new PImage[12];

void setup() {
  //background (255,0);
  size(1024, 1024,P2D);

 for (int i=0; i<myImageArray.length; i++) {
    myImageArray[i] = loadImage( "A-0" + i + ".png");
    pg = createGraphics (1000,1000);
  }
}

void draw() {
 pg.beginDraw (); 
 pg.image(myImageArray[(int)random(12)], 0, 0, 1000, 1000);
 pg.endDraw ();

 image(pg,0,0); 
 noLoop ();
}
void mousePressed() {

  pg = createGraphics(1000,1000);
 if (frameCount > 1) {
  pg.beginDraw ();
  pg.clear();
  pg.endDraw ();
loop ();

  }

}

任何建议将不胜感激!

【问题讨论】:

    标签: arrays processing transparent pgraphics


    【解决方案1】:

    听起来您只是在寻找background() 函数。 background() 函数通过绘制纯色作为背景来清除旧帧。

    您可以在the reference找到更多信息。

    【讨论】:

    • 您好,谢谢您的回复!正如你所说,background () 函数用纯色填充它,我试图避免这种颜色以保持 alpha 透明度。这就是我使用 PGraphics 而不仅仅是 PImage 的原因。
    • @K___S 窗口本身不是透明的,是吗?在draw()函数内部调用background()函数,重绘窗口背景,清除旧框架。
    • 嗨,凯文,非常感谢!我的困惑来自于我认为如果我调用 background();在 draw() 中它会与背景一起保存,但它没有。
    • @K___S 用后台保存是什么意思?
    • 我想如果我在draw(); 中调用background (255); 并调用pg.save (); 它将保存具有调用背景颜色的.png。这有意义吗?
    猜你喜欢
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 2015-02-05
    相关资源
    最近更新 更多