/* built with Studio Sketchpad:
* https://sketchpad.cc
*
* observe the evolution of this sketch:
* https://studio.sketchpad.cc/sp/pad/view/ro.UknqpSuvGiq/rev.70
*
* authors:
* GoToLoop
* license (unless otherwise specified):
* creative commons attribution-share alike 3.0 license.
* https://creativecommons.org/licenses/by-sa/3.0/
*/
/**
* Sliced Image (v3.04)
* by MatzeWagner (2013/Oct)
* mod GoToLoop
*
* forum.processing.org/two/discussion/586/slicing-image-to-array
* studio.processingtogether.com/sp/pad/export/ro.9$MTikWt80-9w/latest
*/
/*
@pjs pauseOnBlur = "true";
preload = "/static/uploaded_resources/p.6273/searichter.jpg";
*/
final static int FPS = 30, FREQ = 2*FPS;
final static int GRID = 10, NUM = GRID*GRID;
final PImage[] pieces = new PImage[NUM];
PImage bg;
int jigX, jigY;
boolean isShuffling = true;
final static String HOST = "http:/" + "/3.bp.blogspot.com";
//final static String PATH = "/-fGkhXK9efpM/TmaRMG2mQpI/AAAAAAAAB5w/zEjlbty8zGM/s1600/";
final static String PATH = "/static/uploaded_resources/p.6273/";
final static String NAME = "searichter.jpg";
void setup() {
size(806, 809);
frameRate(FPS);
//final PImage img = loadImage(HOST + PATH + NAME);
final PImage img = loadImage(PATH + NAME);
//final PImage img = loadImage(NAME);
jigX = img.width/GRID >> 0; // >> 0 forces integer division for JS!
jigY = img.height/GRID | 0; // | 0 forces integer division for JS!
// << 0 and ~~ forces integer conversion for JS as well.
for ( int i = 0; i != NUM;
pieces[i] = img.get(~~(i/GRID) * jigX, i++ % GRID * jigY, jigX, jigY) );
bg = img; // initial bg is the original loaded image.
}
void draw() {
if (frameCount % FREQ == 0) { // either recreate tiles each FREQ frames.
if (isShuffling) for ( int i = 0; i != NUM; image(
pieces[i++], (int) random(GRID)*jigX, (int) random(GRID)*jigY) );
else for ( int i = 0; i != NUM; image(
pieces[i], (i/GRID << 0) * jigX, i++ % GRID * jigY) );
bg = get(); // gets a hard-copy of current canvas!
}
//else background(bg); // or clear canvas using previous BG snapshot.
else image(bg, 0, 0); // JS patched version!
// Put the rest of drawings below:
}
void mousePressed() {
isShuffling = !isShuffling;
}
void keyPressed() {
mousePressed();
}