Selbst wenn ich die Frage vor mehr als einem halben Jahr auf der QS-Website beantwortet habe, war ich traurig, dass niemand sie gesehen hat, also werde ich sie veröffentlichen.
Ich möchte Bilddaten mit Processing lesen und einen beliebigen Bereich mit einer beliebigen Übertragungsmenge transparent machen.
Der Code ist unten. Es ist eine schwierige Technik, die Farbe jedes Pixels des Bildes zu extrahieren, den Transparenzbetrag einzustellen und dann jedes Pixel zu zeichnen. Ich benutze Ellipse beim Zeichnen von Pixeln, aber Sie können auch Rect oder Spot verwenden. .. Bei Verwendung von Spot wird in der Transparenzeinstellung ein Strich anstelle einer Füllung verwendet.
PImage img;
int imgWidth, imgHeight;
//Reichweite, die Sie durchschauen möchten
int xstart = 100;
int xstop = 200;
int ystart = 50;
int ystop = 100;
//Permeationsmenge
int tpSet = 100;
void setup() {
size(480, 320);
img = loadImage("imgName");
imgWidth = img.width;
imgHeight = img.height;
noStroke();
smooth();
background(255);
frameRate(60);
}
void draw() {
background(255);
img.loadPixels();
for (int x =0; x<imgWidth; x++) {
for (int y=0; y<imgHeight; y++) {
//x,Wenn y der ausgewählte Bereich ist, machen Sie ihn transparent.
color imgColor = img.get(x,y);
if(x>xstart && x<xstop && y>ystart && y<ystop){
fill(imgColor, tpSet);
}else{
fill(imgColor);
}
ellipse(x, y, 1, 1);//Kann richtig sein
}
}
}
Recommended Posts