Intereting Posts
Установите Imagick для PHP и Apache в Windows Magento: генерация URL-адреса для бэкэнд-действия (с ключом) if (0 == '%') echo «WTF, Php, почему вы не можете сравнивать вещи здорово?» Проблема с публикацией на странице Facebook с использованием скрипта PHP как учетной записи страницы Как префикс положительного числа с знаком плюса в PHP Именованные группы php regex Отправьте как POST, так и GET в форме Рефакторинг реализации Zend_Auth Как заменить <! – etc -> С помощью переменной PHP – использование cURL для хранения сессии cookie в переменной / памяти Переместить mediawiki TOC на боковую панель Использование PHP spl_autoload_register () с помощью Codeigniter Как заполнить второе раскрывающееся меню на основе выбора первого раскрывающегося списка с использованием jQuery / AJAX и PHP / MySQL? Добавление входного фильтра в набор полей в ZF2 Как использовать preg_replace, чтобы добавить один час к значению времени?

PHP IMagick RGB для CMYK инвертирует?

Я пытаюсь преобразовать 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)

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

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

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

EDIT 2:

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

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

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

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

CORRECT RESULT PHP 5.2.10 IMagick 2.1.1 ImageMagick 6.5.1

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

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

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

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

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

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

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

(Kevin)

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

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

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