使用CMYK创建Rmagick / ImageMagick图像

4

我是新手,想了解图像处理方面的知识,请问有人能给我指点一下吗?

我想使用imagemagick和rmagick从头开始创建图像(比如一个条形码图像),用于打印目的。我知道如何将ColorSpace设置为CMYK(这是打印最佳的颜色空间),以及如何包含颜色配置文件。但是每当我尝试绘制条形码时,CMYK颜色就会出错。

基本上我正在做的是:

bcolor  =  "cmyk(0%, 100%, 100%, 0%)"  # background color Red
fcolor  =  "cmyk(0%, 0%, 0%, 100%)"    # foreground color Black

#Creating the Canvas
canvas = Magick::Image.new(100, 100){
  self.background_color = bcolor
}

canvas.add_profile("#{Rails.root}/my.icc")
canvas.colorspace=Magick::CMYKColorspace # Set CMYK color space

# Class to draw the bars
bars = Magick::Draw.new
bars.fill(fcolor) # Setting the bars color

# Lets draw only 2 bars
bars.rectangle(10, 0, 20, 100)
bars.rectangle(30, 0, 35, 100)

bars.draw(canvas)
blob = canvas.to_blob {self.format = 'jpg'}

File.open("test.jpg", 'w') do |f|
  f.write blob
end

即使背景色(红色)生成正确,条形图仍以不同的颜色绘制。
我进行了一些研究,并发现,如果我理解正确的话,Rmagick的Draw类不支持cmyk,而是使用sRGB进行渲染。http://www.multipole.org/discourse-server/viewtopic.php?t=11254&p=36074 ,因为imagemagick的draw就是这样工作的。
有没有办法在使用这些工具时以CMYK绘制这些条形图?也许是Draw类的解决方法?或者使用CMYK绘制条形图的另一种方法?
提前致谢
还有...
ImageMagick版本:6.8.0-10 2013-04-10
Rmagick:2.13.2
1个回答

1

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