0

処理は初めてです。曲線と楕円の上に.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();

画像が透明になりません。(ただし、紫色になるため、ループはすべてのピクセルで確実に実行されます)

4

1 に答える 1

1

tint() はグリーンスクリーン処理を行いません。画像の色を変更し(ニュートラルでない色を使用する場合)、ミックスの透明度を設定するため、色合い(255,100)を使用すると、画像に(約)0.39の不透明度を効果的に与えます

グリーンスクリーン (またはあなたの場合はホワイトスクリーン) を実行したい場合は、画像をロードするときに画像のピクセルを実行し、r/g/b が 255 のときはいつでも不透明度を 0 に設定して、すべての白を効果的に「削除」します。ピクセル。

于 2013-03-18T23:44:32.333 に答える