PHP imagick将图像从CMYK转换为RGB会导致图像颠倒。

4

我有一张图片被eBay API拒绝,因为出现了以下问题:

 <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 我应该使用呢?
谢谢。
1个回答

9

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

完美运行。谢谢! - user2029890
太棒了!更多信息请参见http://www.phpimagick.com/Imagick/transformImageColorspace - Gervase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接