PHP Imagick RGB a CMYK Invertidos?
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
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