es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Desactiva el autoescala de grises al guardar como PNG con PHP Imagick.

Cuando se guarda una imagen RGB en formato PNG con Imagick, la imagen se guarda automáticamente en escala de grises cuando solo contiene píxeles en tono de gris. Entiendo que esta es una configuración predeterminada que se puede anular. Me gustaría guardar siempre mi imagen en RGB de manera predeterminada. ¿Cómo puedo desactivar la conversión automática a escala de grises de Imagick con PHP/Imagick? He escrito este código.

$im = new Imagick();
$im->setResolution(288, 288);
$im->setColorspace(Imagick::COLORSPACE_SRGB);
$im->setBackgroundColor(new ImagickPixel('transparent'));
$im->readImage($orgDataPath);
$im->setOption("colorspace:auto-grayscale", "off");
$im->setImageType(Imagick::IMGTYPE_TRUECOLOR);
$im->trimImage(0);
$im->setImageFormat("png");
$im->writeImage($pngPrint . ".png");
// limpieza
$im->clear();
$im->destroy();
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para desactivar la función de autoescala de grises de Imagick, puedes utilizar el método setOption() con el parámetro 'colorspace:auto-grayscale' establecido en 'off'. Esto garantizará que la imagen siempre se guarde en formato RGB, incluso si solo contiene píxeles grises. En el ejemplo de código proporcionado, puedes ver que esta línea ya está en su lugar:

    $im->setOption("colorspace:auto-grayscale", "off");
    

    Esto debería asegurar que tu imagen siempre se guarde en formato RGB independientemente del contenido real del archivo.

Comments are closed.