xxxxxxxxxx
45
let img; //画像データ
function preload() {
img = loadImage('./photo.jpg');
}
function setup() {
createCanvas(windowWidth, windowHeight);
img.resize(width, height);
background(0);
}
//彩度を二乗するイメージ (くらい部分は暗く)
function strigify(color) {
return (color * color) /255
}
function draw() {
for (let i = 0; i < 100; i++) { //100倍速
//色を取得する位置をランダムに決定
let x = int(random(width));
let y = int(random(height));
//指定した場所の色を取得
let col = img.get(x, y);
noStroke();
//色の彩度を円の直径に反映させる
let rotation
= map(saturation(col), 0, 255, 0, 360);
//大きさは明度に反映させる
let length
= map(brightness(col), 0, 255, 0, 100);
//色に透明度を加える
fill(strigify(red(col)), strigify(green(col)), strigify(blue(col)), random(20,128));
push();
translate(x, y);
rotate(radians(rotation));
//楕円を描画
ellipse(0, 0, length/2, length);
pop();
}
}