我是Processing的新手。我想在曲线和椭圆上放一个.jpg或.png,这样它们只能看到图像透明的位置。 我的代码如下。问题在于透明区域不是完全透明的,但是透明的白色和不透明的部分也降低了不透明度。
PImage img;
void setup() {
size(300,500);
frameRate(30);
strokeWeight(4);
img = loadImage("sziluettmeret.jpg");
}
void draw() {
background(0, 50, 70);
stroke(0,70,90);
noFill();
beginShape();
curveVertex(-100, -100);
curveVertex(10, 10);
curveVertex(250, 250);
curveVertex(300, 300);
endShape();
fill(255);
ellipse(20 ,20,15,15);
noFill();
tint(255, 100);
image(img, 0, 0);
}
更新:
我的代码中有这个:
loadPixels();
for(int i=0; i < img.pixels.length; i++) {
tmpColor = img.pixels[i];
tmpRed = red(tmpColor);
tmpGreen = blue(tmpColor);
tmpBlue = green(tmpColor);
tmpAlpha = 255 - ((tmpRed + tmpGreen + tmpBlue)/3);
img.pixels[i] = color(2*tmpRed,tmpGreen/2,tmpBlue,0);
if(0xFFFFFF == tmpColor)
}
updatePixels();
图片不会变得透明。 (但它变成紫色,所以循环在每个像素上运行肯定)
答案 0 :(得分:1)
tint()不进行绿屏。它将重新着色你的图像(如果你使用非中性色),并设置混合透明度,所以使用色调(255,100),你有效给图像的不透明度(大约)0.39
如果你想进行绿屏(或在你的情况下,进行白屏),你想在加载图像时浏览图像的像素,然后在r / g / b为255时将不透明度设置为0,有效地“移除”你所有的白色像素。