在下面的程序中,我尝试通过点击鼠标来改变图像的像素颜色,但是,我试图通过第二次点击返回到原始图像,但我一直无法找到这样做的严谨论据......
PImage pic;
void setup(){
pic=loadImage("road.jpg"); // Loading the image from a folder "date" attached to the sketch
size (pic.width,pic.height);
image(pic,0,0);
}
void draw(){
}
void mousePressed(){
loadPixels();
pic.loadPixels();
for (int y = 0; y < height; y++ ) {
for (int x = 0; x < width; x++ ) {
int loc = x + y*width;
if(red(pixels[loc]) >170 && red(pixels[loc])<215){
pixels[loc]=color(187,0,0); //changing the pixels color from red to green
}
}
}
for (int y = 0; y < height; y++ ) {
for (int x = 0; x < width; x++ ) {
int loc = x + y*width;
if(green(pixels[loc]) >120 && green(pixels[loc])<160){
pixels[loc]=color(0,192,0); //changing the pixels color form green to red
}
}
}
// I belive that here I have to add an argument that returns to the original image
updatePixels();
}
我将不胜感激。
感谢。
答案 0 :(得分:1)
我通常为这类事情做的是创建/ two / images,一个是文件(目标),另一个是空白图像。
PImage target;
PImage destination;
target = loadImage("file.jpg");
destination = createImage(target.width, target.height, RGB);
然后我将目标的信息复制到目的地的像素中。如果我想换回,我可以打电话给目标;我可以通过将它们保存为两个单独的图像来自由地来回交换。
例如,在openprocesing上查看我的草图:http://openprocessing.org/visuals/?visualID=49301