xxxxxxxxxx
50
var source;
var destination;
function preload() {
source = loadImage('frog.jpg');
}
function setup() {
createCanvas(500, 500);
destination = createImage(source.width, source.height, RGB);
}
function draw() {
destination.loadPixels();
source.loadPixels();
var fuzz = 8;
for (var y = 0; y < source.height; y++) {
for (var x = 0; x < source.width; x++) {
var d = int(dist(width/2, height/2, mouseX, mouseY));
var maxDist = int(dist(0, 0, width/2, height/2));
var factor = map(d, 0, maxDist, 0, fuzz+(fuzz/4));
var loc = (x + y * source.width)*4;
if (0 < x && x < fuzz + ( fuzz/2)) {
var loc2 = ((x + int(random(0, factor)) + y * source.width))*4;
destination.pixels[loc] = source.pixels[loc2];
destination.pixels[loc+1] = source.pixels[loc2+1];
destination.pixels[loc+2] = source.pixels[loc2+2];
destination.pixels[loc+3] = source.pixels[loc2+3];
} else if ( source.width - fuzz - (fuzz/2) < x && x < source.width) {
var loc3 = (x + int(random(-factor, 0)) + y * source.width)*4;
destination.pixels[loc] = source.pixels[loc3];
destination.pixels[loc+1] = source.pixels[loc3+1];
destination.pixels[loc+2] = source.pixels[loc3+2];
destination.pixels[loc+3] = source.pixels[loc3+3];
} else if ( 0 + fuzz < x && x < source.width - fuzz) {
var loc4 = (x + int(random(-factor, factor)) + y * source.width)*4;
destination.pixels[loc] = source.pixels[loc4];
destination.pixels[loc+1] = source.pixels[loc4+1];
destination.pixels[loc+2] = source.pixels[loc4+2];
destination.pixels[loc+3] = source.pixels[loc4+3];
}
}
}
destination.updatePixels();
image(destination, 10, 10);
}