use the raw luma

This commit is contained in:
Brooke Vibber 2024-08-27 19:09:28 -07:00
parent a2d496118e
commit 0ea766a5a6

View file

@ -247,21 +247,13 @@ function colorize(input) {
// Try dithering with this palette. // Try dithering with this palette.
for (let x = 0; x < width; x++) { for (let x = 0; x < width; x++) {
let rgb = inputPixel(x, error); let rgb = inputPixel(x, error);
let luma = Math.round(rgb.luma() / 15);
let pick = luma;
// find the closest possible color let diff = rgb.difference(atariRGB[palette[pick]]);
// @todo consider doing the difference scoring in luminance and hue spaces let dist = diff.magnitude();
shortest = Infinity; nextError = diff;
let pick = 1; shortest = dist;
for (let i = 0; i < palette.length; i++) {
let diff = rgb.difference(atariRGB[palette[i]]);
let dist = diff.magnitude();
if (dist < shortest) {
nextError = diff;
shortest = dist;
pick = i;
}
}
output[x] = pick; output[x] = pick;
distance += shortest; distance += shortest;