let effectToggle = false;
img = loadImage('aliciakeys.jpg');
img.resize(width, height);
let brightnessSlider = createSlider(0, 2, 1, 0.01);
brightnessSlider.input(() => brightnessLevel = brightnessSlider.value());
let contrastSlider = createSlider(0, 3, 1, 0.01);
contrastSlider.input(() => contrastLevel = contrastSlider.value());
let pixelSlider = createSlider(1, 20, 10);
pixelSlider.input(() => pixelSize = pixelSlider.value());
let toggleButton = createButton("Toggle Effect");
toggleButton.mousePressed(() => effectToggle = !effectToggle);
for (let y = 0; y < img.height; y += pixelSize) {
for (let x = 0; x < img.width; x += pixelSize) {
if (mouseX > x && mouseX < x + pixelSize && mouseY > y && mouseY < y + pixelSize) {
let index = (x + y * img.width) * 4;
let r = img.pixels[index];
let g = img.pixels[index + 1];
let b = img.pixels[index + 2];
r = constrain(r * brightnessLevel * contrastLevel, 0, 255);
g = constrain(g * brightnessLevel * contrastLevel, 0, 255);
b = constrain(b * brightnessLevel * contrastLevel, 0, 255);
let noiseFactor = (random() - 0.5) * pixelSize;
rect(nx, ny, pixelSize, pixelSize);
function mousePressed() {
function mouseReleased() {
speed = map(mouseX, 0, width, 0.1, 5);