【问题标题】:PHP IMagick RGB to CMYK inverts?PHP IMagick RGB 到 CMYK 反转?
【发布时间】:2011-06-17 08:37:26
【问题描述】:

我正在尝试使用 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

【问题讨论】:

    标签: php rgb imagick cmyk


    【解决方案1】:

    试试这个:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我有一个解决方案。看我的回答
      【解决方案3】:

      看这里http://imagemagick.org/Usage/formats/#color_profile

      转换 cmyk_image.jpg -colorspace rgb rgb_image.jpg

      【讨论】:

      • 问题是关于 php imagick 扩展,而不是关于 ImageMagick 的命令行“转换”,所以这个答案是“不是主题”。 => -1
      • php imagick 没有这样做,它只是 ImageMagick 的一个包装器,如果你知道命令行选项,你可以在你的 php 代码中使用它。
      • 它是 ImageMagick 库的包装器,而不是转换工具的包装器。那不一样。并且包装器不会公开所有选项。 github.com/mkoppanen/imagick 您可以查看源代码并看到,它实际上不仅仅是调用 cli IM 命令(参见 imagick.c),而是单独公开功能。
      【解决方案4】:

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

      【讨论】:

      • 我尝试过使用 Illustrator 并将您的 .gif 转换为 CMYK,但是当它将图像另存为 .gif 时,它又回到了 RGB,所以您可能是对的!我也尝试过我之前在 JPG 上的示例,它已转换为 CMYK,但仍为负数:|
      • CMYK jpg 也不是普遍支持的。 Photoshop 可以,但并非所有软件都可以处理它。此外,从技术上讲,GIF 不是 RGB,而是索引颜色。你混淆了条款。每当您从 rgb 到 cmyk 来回转换时,您也会失去色彩保真度。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-06
      • 2012-01-30
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      相关资源
      最近更新 更多