我是新手,想了解图像处理方面的知识,请问有人能给我指点一下吗?
我想使用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