Quiero hacer una aplicación nodejs que tome una matriz de números de 9 dígitos que represente un píxel rgb, por lo que 123456789 represente r: 123, g: 456, b: 789 y conviértalo en una imagen jpg.
entonces el ejemplo de matriz es:
let pixels = [ '000115166', '000115164', '000115164', '000115166', '000115166', '000115166', '000115166', '000115164', '000115164', '000115166', '000115166', '000115166', '000115166', '000115164', '000115166', '000115166', '000115166', '000115166', '000115166', '000115166', '000115164', '000115166', '000115166', '000115164', '000115164', '000114168', '000115166', '000114168', '000115164', '000114168']¿Hay alguna manera de hacerlo en la aplicación nodejs?
Usando sharp npm en node.js, podemos convertir imágenes usando color RGB, espero que este código lo ayude
const sharp = require("sharp"); const fs = require("fs"); const path = require("path"); const { v4: uuidv4 } = require("uuid"); const convertImage = async () => { let pixels = [ "198115166", "000115164", "000115164", "000115166", "000115166", "000115166", "000115166", "000115164", "000115164", "000115166", "000115166", "000115166", "000115166", "000115164", "000115166", "000115166", "000115166", "000115166", "000115166", "000115166", "000115164", "000115166", "000115166", "000115164", "000115164", "000114168", "000115166", "000114168", "000115164", "000114168", ]; const rgbData = []; pixels.forEach((e) => { const obj = { r: e.substring(0, 3), g: e.substring(3, 6), b: e.substring(6, 9), }; rgbData.push(obj); }); const imagefolderpath = path.resolve(`${__dirname}`, "Images"); for (const color of rgbData) { const filename = `${uuidv4()}.jpeg`; await sharp({ create: { width: 48, height: 48, channels: 4, background: { ...color }, }, }).toFile(filename); } }; convertImage();