【发布时间】:2014-06-11 15:29:54
【问题描述】:
基本上我是图像处理的新手,想知道是否有人可以在这里指导我。
我不想使用 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 版本:2013-04-10 6.8.0-10
Rmagick:2.13.2
【问题讨论】:
标签: ruby-on-rails image-processing imagemagick rmagick