Pregunta

Estoy tratando de convertir un RGB .gif a un CMYK .gif usando el módulo PhP Imagick.

He escrito este código

$i = new Imagick('mosaique.gif');
$i->setImageColorspace(Imagick::COLORSPACE_CMYK);
$i->setImageFormat('gif');
$i->writeImage('mosaique-cmyk.gif');

Pero el resultante "mosaique-cmyk.gif" sigue siendo un RGB ... pero con colores invertidos (O_O)

¿Qué estoy haciendo mal?

EDITAR:

Lo he intentado con un .jpg y la imagen se convierte en CMYK pero se queda negativo.

Editar 2:

He intentado ejecutar mi script haciendo un .pdf en otro servidor y funciona bien.

¿Hay algún error conocido en Imagick? ¿Hay algunas opciones para establecer en la biblioteca PHP5?

La versión que me devuelve la imagen invertida es más nueva que la que funciona correctamente

Resultado incorrecto PHP 5.3.3 Imagick 3.0.0rc1 ImageMagick 6.6.2

Resultado correcto PHP 5.2.10 Imagick 2.1.1 ImageMagick 6.5.1

¿Fue útil?

Solución

El error de hecho es un error;)

Lo informé, algunos otros han confirmado mi miedo y ahora está asignado a un desarrollador para una solución: http://pecl.php.net/bugs/bug.php?id=22184

En este momento, la solución es usar una versión diferente de las bibliotecas.

Otros consejos

GIF es formato de 256 colores, también conocido como "indexado". No creo que uno pueda guardar un GIF como CMYK. Cada uno de los 256 colores es un valor RGB, pero no es capaz de almacenar la gama RGB completa.

Prueba esto:

$im->stripImage();
$icc_cmyk_profile_path='image_functions/cmyk_icc_profiles/USWebUncoated.icc'; 
//[http://www.mattbeals.com/icc/][1]

$icc_cmyk = file_get_contents($icc_cmyk_profile_path);
$im->profileImage('icc', $icc_cmyk);
unset($icc_cmyk);
$colorspace=$im->getImageColorspace();                  

if ($colorspace==12) {
    echo "CMYK";
}

$im->stripImage();

$im->writeImage($destination);      
$im->clear();
$im->destroy();

Resolví este problema: visite mi respuesta en esta página de StackoverFlow:Convierta la imagen de RGB a CMYK con Imagick

(Kevin)

Es un problema de NegateImage (). Fácil de arreglar.

mira aquí http://imagemagick.org/usage/formats/#color_profile

convertir cmyk_image.jpg -colorspace rgb rgb_image.jpg

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top