PHP IMagick RGB 到 CMYK 反转?

发布于 2024-10-14 22:41:50 字数 617 浏览 3 评论 0原文

我正在尝试使用 IMagick PHP 模块将 RGB .gif 转换为 CMYK .gif。

我写了这段代码

$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,但它仍然是负片。

编辑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

I'm trying to convert a RGB .gif to a CMYK .gif using IMagick PHP module.

I've wrote this piece of code

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

But the resultant "mosaique-cmyk.gif" still a RGB... but with inverted colors (O_O)

What am I doing wrong?

EDIT:

I've tried with a .jpg and the image is converted to CMYK but it stills in negative.

EDIT 2:

I've tried to run my script making a .pdf on another server and it works fine.

Are there any known bug in IMagick?
Are there some options to set in the php5 library?

The version that returns me the inverted image is newer than the one that works correctly

WRONG RESULT
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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

岁月静好 2024-10-21 22:41:50

该错误实际上是一个错误;)

我报告了它,其他一些人证实了我的担心,现在它已分配给开发人员进行修复:http://pecl.php.net/bugs/bug.php?id=22184

目前的解决方案是使用不同版本的库。

The error in fact it's a bug ;)

I reported it, some other has confirmed my fear and now it's assigned to a developer for a fix: http://pecl.php.net/bugs/bug.php?id=22184

At this moment the solution it's to use a different version of the libraries.

月亮邮递员 2024-10-21 22:41:50

GIF 是 256 色格式,也称为“索引”。我不认为可以将 gif 保存为 cmyk。 256 种颜色中的每一种都是一个 RGB 值,但它无法存储完整的 RGB 色域。

GIF is 256-color format aka "indexed." I do not think one can save a gif as cmyk. Each of the 256 colors is an RGB value, but it is not capable of storing the full RGB gamut.

等风也等你 2024-10-21 22:41:50

试试这个:

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

Try this:

$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();
红焚 2024-10-21 22:41:50

请参阅此处http://imagemagick.org/Usage/formats/#color_profile

转换 cmyk_image.jpg -色彩空间
rgb rgb_image.jpg

see here http://imagemagick.org/Usage/formats/#color_profile

convert cmyk_image.jpg -colorspace
rgb rgb_image.jpg

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文