reading @Kevin Workman's advice I came up with the following snippet :)
PImage img;
PImage temp;
float prop;
void setup() {
while ( img == null) {
img = loadImage("http://xaxor.com/images/Genevieve-Bjargardottir/Genevieve-Bjargardottir1.jpg");
}
prop = (float)img.width / (float)img.height ;
size(800, int(800/prop));
frameRate(1);
}
void draw() {
float pw = random(img.width);
float ph = pw / prop;
int x, y;
x = int(random(img.width - pw));
y = int(random(img.height - ph));
// scaled piece
temp = img.get(x, y, int(pw), int(ph));
image(temp, 0, 0, width, height);
//full pict
image(img, 0, 0, img.width/6, img.height/6);
noFill();
stroke(255);
//croped piece
rect(x/6, y/6, pw/6, ph/6);
}