安装配置
在RMagick安装前,确保你的系统正确安装了rubys。
RMagick的安装配置很简单:下载安装文件,解压缩后,在命令行状态下进入解压缩后的目录,找到RMagick的gem,如rmagick-1.14.1-win32.gem,然后命令行执行:gem rmagick-2.3.0-x86-mswin32.gem,然后双击ImageMagick-6.4.0-2-Q8-windows-dll.exe进行安装,只需要根据个人情况改变安装路径即可 。
需求很简单,就是动态生成一个指定大小的图片,然后再图片上写几个汉字或者数字,英文等,所以大概的步骤就是这样的,直接看代码吧:
复制内容到剪贴板
代码:
require 'RMagick'
class DrawPrice
def self.draw(name,text1,text2,url='http://www.j-kanban.com')
img = Magick::Image.new(400,100,Magick::HatchFill.new('white','lightcyan2'))
gc = Magick::Draw.new
gc.stroke('transparent')
gc.pointsize(16)
gc.font("fonts/simhei.ttf")
gc.text(10,30, "#{text1}")
gc.text(10,50, "#{text2}")
gc.text(10,70, url)
gc.draw(img)
img.write("c:\\#{name}.jpg")
end
end
DrawPrice.draw("China","2008年5月12日14时28分","让我们永远铭记这一刻,愿逝者安息,生者坚强")
图片处理需要提供多种字体来写字,还考虑到发布环境在linux下,所以用了这样的方法:从Windows的字体文件夹c:/windows/fonts下拷贝出中文字体库到自己的工程目录的fonts目录中,然后通过设置gc.font来使用它们。
class DrawPrice
def self.draw(name,text1,text2,text3)
img = Magick::Image.new(600,89,Magick::HatchFill.new('black','black'))
gc = Magick::Draw.new
gc.pointsize(24)
gc.font("fonts/simhei.ttf")
gc.fill('white')
gc.text(10,25, "#{text1}")
gc.text(10,50, "#{text2}")
gc.text(10,75, "#{text3}")
gc.draw(img)
src = Magick::Image.read("candle.gif")[0]
result = img.composite(src, Magick::CenterGravity,250,5,Magick::OverCompositeOp)
result.write("c:\\#{name}.jpg")
end
end
DrawPrice.draw("China","沉痛悼念四川汶川大地震遇难同胞","2008年5月12日14时28分","让我们永远铭记这一刻,愿逝者安息,生者坚强")