9

我一直在使用以下内容进行颜色转换

    if @image.colorspace == Magick::CMYKColorspace
      # @image.colorspace #=> CMYKColorspace=12
      @image.colorspace = Magick::RGBColorspace
      @image = @image.negate
    end

它大约可以工作,但颜色亮度已关闭。我需要否定图像的事实留下了非常难闻的气味。

文档提到使用 color_profiles,但除此之外我找不到太多。

我现在正在尝试

@image = @image.quantize(16777216, Magick::RGBColorspace)

颜色更好,但仍然关闭。

4

5 回答 5

11

谢谢Pekka,你给了我答案(+1)。

您必须在安装了Little Color Management System (LCMS)的情况下编译 ImageMagick 。如果使用了安装程序或软件包,可能已经是这种情况。但我是从源代码编译的。就像从源代码安装 LCMS 并重建 ImageMagick ( ./configure; make; make install) 一样简单。

在 ImageMagick 中,以下内容可以很好地再现准确的颜色:

convert FILENAME -profile /PATH_TO_PROFILE/sRGB.icm OUT.jpg

所以在 RMagick 我使用以下内容:

if @image.colorspace == Magick::CMYKColorspace
   # Adjust the path as necessary
   @image.color_profile ="/usr/local/share/ImageMagick-6.5.4/config/sRGB.icm"
end

@image.write("out.jpg") { self.quality = 85 }
于 2009-12-07T17:18:02.963 回答
4

我花了很长时间尝试使用 RMagick 和 Rails 从 CMYK EPS 转换为 RGB PNG。希望这对某人有用:

def convert_image_from_cmyk_to_rgb( image )
  #puts image.alpha?
  if image.colorspace == Magick::CMYKColorspace
    image.strip!
    image.add_profile("#{Rails.root}/lib/USWebCoatedSWOP.icc")
    image.colorspace == Magick::SRGBColorspace
    image.add_profile("#{Rails.root}/lib/sRGB.icc")
  end
  image
end

您可以直接从 Adob​​e 下载 ICC 文件,网址为http://www.adobe.com/support/downloads/iccprofiles/iccprofiles_win.html

我唯一不知道的是如何保持透明度。我要使用的 EPS 具有透明背景,正在变成白色。不幸的是,我不能做类似的事情image.transparent( "white" ),因为我想保持白色的图像中有白色。

如果我puts image.alpha?在上面的代码中取消注释它会返回false.

有谁知道我正在尝试使用当前版本的 RMagick 是否可行,因为我开始怀疑是否不支持导入具有透明度的 CMYK EPS。

谢谢!

于 2011-07-26T16:35:36.890 回答
2

在这种情况下,传入的文件确实有一个配置文件。我会再调查一些。我迷失了颜色配置文件(比如我在哪里下载它们?ICC网站没有多大帮助)

你不是唯一一个困惑的人;我也是。ImageMagick 网站上有一些值得筛选的讨论:据当时的理解,当使用的配置文件可以被识别(例如监视器配置文件)或嵌入文件(其中我认为至少可以在 Photoshop 中为 TIFF 和 JPG 完成)。检查例如:这里。祝你好运。

于 2009-12-05T21:02:42.667 回答
2

我发现 The Who 的命令行解决方案运行良好,但 RMagick 解决方案对我不起作用。

为了让它在 RMagick 中工作,我不得不使用 Magick::Image#add_format 方法,根据文档,该方法将允许您指定源和目标配置文件。它看起来像这样:

if img.colorspace == Magick::CMYKColorspace
  img.add_profile(RGB_COLOR_PROFILE)
end 
于 2010-03-01T19:06:00.853 回答
1

RE: Centos 5.5 上的 LCMS,请务必从源代码下载并构建最新的 LCMS(与 yum 安装相比)。否则,IM 在构建时找不到 LCMS,您会像我一样摸不着头脑,想知道为什么 IM 委托库中不包含 LCMS。

于 2010-12-03T18:33:35.833 回答