Ciao 访客, welcome back to old school! :p
PImage Img;void setup(){ Img = loadImage("source.jpg"); size(Img.width,Img.height); colorMode(HSB, 255);}void draw(){ //background(255,0,0); image(Img,0,0); loadPixels(); for (int i=0;i<height;i++) { for (int j=0;j<width;j++) { int index = j+i*width; float hue_ = hue(pixels[index]); float saturation_ = saturation(pixels[index])-(mouseX*255/width); float brightness_ = brightness(pixels[index])-(mouseY*255/height); pixels[index] = color(hue_,saturation_,brightness_); } } updatePixels(); }
color[] originPixels;void setup() { PImage img = loadImage("source.jpg"); colorMode(HSB, 360, 360, 360); size(img.width, img.height); image(img, 0, 0); loadPixels(); originPixels = pixelsDeepCopy(pixels);}void draw() { float distofMouse = dist(mouseX, mouseY, 0, 0); float slopeLine = dist(width, height, 0, 0); float changeValue = (slopeLine-distofMouse)/slopeLine; for (int i=0; i<height; i++) { for (int j = 0; j < width; j++) { int pixelIndex = i*width+j; color pixel = originPixels[pixelIndex]; float hvalue = hue(pixel); float svalue = saturation(pixel); float bvalue = brightness(pixel); svalue = svalue*changeValue; pixels[pixelIndex] = color(hvalue, svalue, bvalue); } } updatePixels();}color[] pixelsDeepCopy(color[] originalPixels) { color[] copiedColors = new color[originalPixels.length]; for (int i = 0; i < originalPixels.length; i++) { color oc = originalPixels[i]; float hvalue = hue(oc); float svalue = saturation(oc); float bvalue = brightness(oc); color c = color(hvalue,svalue,bvalue); copiedColors[i] = c; } return copiedColors;}