Beginner - code does not work, can't see why
in
Programming Questions
•
1 years ago
I hope you will forgive my ignorance as this is probably simple, but as a beginner, I can't see why it doesn't work. I am trying to access pixel data and simply change any that are 'near black' to black. The resulting image has no changes made to it; pixels of rgb values like (2, 4, 3) still exist. It may seem trivial but it is a step in learning to get me to what I really want to do.
PImage img;
color blk = color(0, 0, 0);
color blk = color(0, 0, 0);
void setup() {
size(491, 464);
img = loadImage("ctdarkred17.jpg");
}
size(491, 464);
img = loadImage("ctdarkred17.jpg");
}
void draw() {
loadPixels();
noLoop();
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int loc = x + y*width;
float r = red(img.pixels[loc]);
float g = green(img.pixels[loc]);
float b = blue(img.pixels[loc]);
//if colour is blackish, set to black
if((r < 20) && (g < 20) && (b < 20)) {
pixels[loc] = color(blk);
} else {
color same = color(r, g, b);
pixels[loc] = color(same);
}
}
}
updatePixels();
print("finished");
save("ctdarkred17.jpg");
}
loadPixels();
noLoop();
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
int loc = x + y*width;
float r = red(img.pixels[loc]);
float g = green(img.pixels[loc]);
float b = blue(img.pixels[loc]);
//if colour is blackish, set to black
if((r < 20) && (g < 20) && (b < 20)) {
pixels[loc] = color(blk);
} else {
color same = color(r, g, b);
pixels[loc] = color(same);
}
}
}
updatePixels();
print("finished");
save("ctdarkred17.jpg");
}
1