PHP IMagick RGB в CMYK инвертирует? - PullRequest
3 голосов
/ 28 января 2011

Я пытаюсь преобразовать RGB .gif в CMYK .gif с помощью модуля IMagick PHP.

Я написал этот кусок кода

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

Но полученный "mosaique-cmyk.gif" все еще RGB ... но с инвертированными цветами (O_O)

Что я делаю не так?

EDIT:

Я пытался с .jpg, и изображение конвертируется в CMYK, но оно все еще остается отрицательным.

РЕДАКТИРОВАТЬ 2:

Я пытался запустить свой скрипт, создавая .pdf на другом сервере, и он отлично работает.

Есть ли какие-либо известные ошибки в IMagick? Есть ли какие-то опции для установки в библиотеке php5?

Версия, которая возвращает мне перевернутое изображение, новее, чем та, которая работает правильно

НЕПРАВИЛЬНЫЙ РЕЗУЛЬТАТ PHP 5.3.3 IMagick 3.0.0RC1 ImageMagick 6.6.2

ПРАВИЛЬНЫЙ РЕЗУЛЬТАТ PHP 5.2.10 IMagick 2.1.1 ImageMagick 6.5.1

Ответы [ 5 ]

3 голосов
/ 05 октября 2011

Ошибка на самом деле это ошибка;)

Я сообщил об этом, некоторые подтвердили мой страх, и теперь он назначен разработчику для исправления: http://pecl.php.net/bugs/bug.php?id=22184

На этомНа данный момент решение заключается в использовании другой версии библиотек.

2 голосов
/ 28 января 2011

GIF - это 256-цветный формат, он же «индексируется». Я не думаю, что можно сохранить GIF как CMYK. Каждый из 256 цветов является значением RGB, но он не способен хранить полную гамму RGB.

1 голос
/ 04 апреля 2011

Попробуйте это:

$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();
0 голосов
/ 15 июня 2013

Я решил эту проблему: Пожалуйста, посетите мой ответ на этой странице stackoverflow: Преобразование изображения из RGB в CMYK с помощью Imagick

(Kevin)

Это проблема negateImage (). Легко исправить.

0 голосов
/ 12 апреля 2011

см. Здесь http://imagemagick.org/Usage/formats/#color_profile

конвертировать cmyk_image.jpg -colorspace rgb rgb_image.jpg

...