Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

130
Vistas
How to convert 24bit PNG images to 8bit PNG images

I am currently using canvas library and I was able to successfully create 24bits images using the code below:

const fs = require("fs");
const { createCanvas, loadImage } = require("canvas");

const canvas = createCanvas(3000, 3000); 
const ctx = canvas.getContext("2d", {alpha: false});

const loadMyImage = async (img) => {
    return new Promise(async (resolve) => {
        const image = await loadImage(`${img}`);
        resolve({ layer: img, loadedImage: image });
    });
};

const drawElement = (_renderObject) => {
    ctx.drawImage(_renderObject.loadedImage, 0, 0, 3000, 3000);
};

const saveImage = (img) => {
  fs.writeFileSync(
    `${img}.png`,
    canvas.toBuffer("image/png")
  );
};

const run = async () => {
            let loadedImg = loadMyImage('purple.png');

            //start drawing image
            await Promise.resolve(loadedImg).then((renderObject) => {
                ctx.clearRect(0, 0, 3000, 3000);
                drawElement(renderObject);
                saveImage(1);
            });
};

(() => {
    run();
})();

which works fine, but if I want to save images as 8bit PNG images, and change only this line to:

const ctx = canvas.getContext("2d", { pixelFormat: 'A8' });

I get only white images. What am I missing?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda