// Paul Greenway
// pgreenwa
// pgreenwa@andrew.cmu.edu
// Project-09-Portrait
var originalPortrait;
function preload() {
//original portrait image from imgur
var portraitUrl = "https://i.imgur.com/mqXKE8q.jpg";
originalPortrait = loadImage(portraitUrl);
}
function setup() {
createCanvas(700, 1200);
background(255);
originalPortrait.loadPixels();
frameRate(1000);
}
function draw() {
var px = random(width);
var py = random(height);
var circSize = random(5,20);
var ix = constrain(floor(px), 0, width-1);
var iy = constrain(floor(py), 0, height-1);
var theColorAtLocationXY = originalPortrait.get(ix, iy);
//fill circles with color based on base image
noStroke();
fill(theColorAtLocationXY);
//draw circle with dimension based on mouse position
ellipse(px, py, circSize*(mouseX*0.01), circSize*(mouseY*0.01));
}
For this project I wanted to create portrait generator that would adjust the size / resolution of the dots based on user input. While I found it hard implement the exact control over the image that I wanted, the final result was a portrait made up of circles with dimensions based on the mouse position.