typescript - Cómo reemplazar todos los colores excepto el negro en una imagen Node.JS
Estoy intentando crear una silueta de una imagen. Ya he hecho el fondo negro, pero tengo problemas para convertir todos los demás colores en gris.
Mi código hasta ahora:
import sharp from "sharp";
import jimp from "jimp";
sharp("input.png")
.flatten()
.toFile("output.jpg")
.then(async (data) => {
const image = await jimp.read("output.jpg");
image.scan(0, 0, image.bitmap.width, image.bitmap.height, (x, y, idx) => {
if (image.bitmap.data[idx] >= 2) {
image.bitmap.data[idx] = 86;
image.bitmap.data[idx + 1] = 101;
image.bitmap.data[idx + 2] = 115;
image.bitmap.data[idx + 3] = image.bitmap.data[idx + 3];
}
});
image.write("output.jpg");
});
Este código produce:
La imagen de entrada era:
He buscado paquetes como replace-color, pero parecen estar destinados a reemplazar un solo color, no todos menos uno. Cualquier ayuda es muy apreciada
Respuesta #1
El problema era que estaba cambiando el formato de png a jpg. Mantenerlo como png soluciona el problema

