У меня есть изображение, которое отклоняется 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
Я должен использовать?
Благодарю.
Метод 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();
Других решений пока нет …