基本上,我是图像处理的新手,想知道是否有人可以在这里给我带头。
我不会使用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
雷马奇克:2.13.2
最佳答案
As answered by the admin in the official ImageMagick-Forum ImageMagick的绘图引擎仅适用于sRGB色彩空间。因此,解决您问题的唯一方法可能是绘制sRGB,然后将整个图像转换为CMYK。
this post中介绍了如何将sRGB转换为CMYK。
关于ruby-on-rails - 使用CMYK的Rmagick/ImageMagick图像创建,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23301213/