Domanda

Sto cercando di convertire un RGB .gif ad un CMYK .gif utilizzando il modulo imagick PHP.

Ho scritto questo pezzo di codice

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

Ma la risultante "Mosaique-cmyk.gif" ancora un RGB ... ma con colori invertiti (O_O)

Che cosa sto facendo di sbagliato?

EDIT:

Ho provato con un .jpg e l'immagine viene convertita in CMYK ma Stills in negativo.

EDIT 2:

Ho cercato di correre il mio script facendo un .pdf su un altro server e funziona bene.

Ci sono dei bug noto in imagick? Ci sono alcune opzioni per impostare nella libreria PHP5?

La versione che restituisce me l'immagine invertita è più recente rispetto a quello che funziona correttamente

risultato sbagliato PHP 5.3.3 imagick 3.0.0RC1 ImageMagick 6.6.2

risultato corretto PHP 5.2.10 imagick 2.1.1 ImageMagick 6.5.1

È stato utile?

Soluzione

L'errore di fatto si tratta di un bug;)

ho riferito, qualche altro ha confermato la mia paura e ora è assegnato ad uno sviluppatore per una correzione: http://pecl.php.net/bugs/bug.php?id=22184

In questo momento la soluzione è utilizzare una versione diversa delle librerie.

Altri suggerimenti

GIF is 256-color format aka "indexed." I do not think one can save a gif as cmyk. Each of the 256 colors is an RGB value, but it is not capable of storing the full RGB gamut.

Try this:

$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();

I solved this issue: Please visit my answer on this stackoverflow page: Convert image from RGB to CMYK with Imagick

(Kevin)

It is a negateImage() issue. Easy to fix.

see here http://imagemagick.org/Usage/formats/#color_profile

convert cmyk_image.jpg -colorspace rgb rgb_image.jpg

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top