Click here to view this code in the p5 editor.
Click here to view the result by itself.
let img;
let palette;
let y = 0;
function preload() {
img = loadImage('images/horizons/horizon-7.jpg');
}
function setup() {
createCanvas(600, 600);
img.resize(width, height);
// Genuary 23 palette
palette = [
'#264653', '#2a9d8f',
'#e9c46a', '#f4a261',
'#e76f51'
];
image(img, 0, 0);
}
function draw() {
for (let x = 0; x < width; x++) {
const imgColor = img.get(x, y);
const paletteColor = getPaletteColor(imgColor);
stroke(paletteColor);
point(x, y);
}
y++;
if (y >= height) {
noLoop();
}
}
function getPaletteColor(imgColor) {
const imgR = red(imgColor);
const imgG = green(imgColor);
const imgB = blue(imgColor);
let minDistance = 999999;
let targetColor;
for (const c of palette) {
const paletteR = red(c);
const paletteG = green(c);
const paletteB = blue(c);
const colorDistance =
dist(imgR, imgG, imgB,
paletteR, paletteG, paletteB);
if (colorDistance < minDistance) {
targetColor = c;
minDistance = colorDistance;
}
}
return targetColor;
}
Click here to view this code in the p5 editor.
Click here to view the result by itself.
This sketch replaces the colors in an image with colors from a chosen palette.
I created this for the 23rd day of Genuary which had a prompt of 5 colors: #264653, #2a9d8f, #e9c46a, #f4a261, and #e76f51.
The colors reminded me of a sunset, so I applied the palette filter to a few pictures of horizons I’ve taken recently.
Replace the colors in an image.
Happy Coding is a community of folks just like you learning about coding.
Do you have a comment or question? Post it here!
Comments are powered by the Happy Coding forum. This page has a corresponding forum post, and replies to that post show up as comments here. Click the button above to go to the forum to post a comment!