PHP Imagick конвертирует изображение из CMYK в RGB инвертирует изображение

У меня есть изображение, которое отклоняется API eBay из-за этого:

 <ShortMessage>Source picture uses an unsupported colorspace.</ShortMessage>
<LongMessage>Pictures with a CMYK colorspace are not supported; source pictures must use a RGB colorspace compatible with all web browsers supported by eBay. Submit pictures created using a camera or scanner set to save images with RGB color.</LongMessage>

Ну, я понятия не имел, что это был CMYK, и я даже не уверен, как сказать. Затем я использовал следующий код для попытки преобразования:

$image= "$img.jpg";
$i = new Imagick($image);
$i->setImageColorspace(Imagick::COLORSPACE_SRGB);
$i->writeImage($image);
$i->destroy();

Он конвертирует (и теперь принимает eBay), но также инвертирует цвета картинки. Зачем это делать и есть ли другой COLORSPACE Я должен использовать?

Благодарю.

4

Решение

Метод setImageColorSpace не предназначен для использования с существующими изображениями, он предназначен только для новых изображений (например, $imagick->newPseudoImage(100, 100, "xc:gray");)

Метод transformImageColorSpace является правильным для использования для изменения существующего цветового пространства изображений.

$image= "$img.jpg";
$i = new Imagick($image);
$i->transformImageColorspace(Imagick::COLORSPACE_SRGB);
$i->writeImage($image);
$i->destroy();
7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]