很久没有使用Rmagick了,因为做个程序需要,所以又要安装这个家伙,但遇到了问题:
Postscript delegate failed `/tmp/magick-3673DirXwP52M9uZ
解决方法:
./configure --with-gslib=yes
但是确保ghostscript及libjpeg-dev已安装,如果还需要png(libpng12-dev)等也要安装相应包
ruby使用了Rmagick和MiniMagick
重新编译安装后,Rmagick已正常,但MiniMagick仍然有问题:
如果在图片上写入“测试程序”则报编码错误,如果写入“a测试程序”,则可以写入,还是没有找到原因,在网上也查了,似乎MiniMagick确实会出现此问题。。。
代码如下:
# encoding: UTF-8 require 'RMagick' require 'mini_magick' module ImageExt class << self def generate_img img = Magick::Image.new(200,200,Magick::HatchFill.new('green','green')) gc=Magick::Draw.new gc.stroke('transparent') gc.pointsize(28) gc.font='simfang.ttf' gc.text(20,20,'测试程序') gc.font='simkai.ttf' gc.text(20,60,'测试程序') gc.draw(img) img.write("test.png") end def rmagick img = Magick::Image.new(200,200,Magick::HatchFill.new('green','green')) gc = Magick::Draw.new # gc.stroke('transparent') gc.pointsize(24) gc.font("simfang.ttf") gc.text(20,40, '测试程序') gc.text(20,70, '测试程序') gc.fill('white') gc.font("simkai.ttf") gc.text(20,100, '测试程序') gc.text(20,130, '测试程序') gc.text(20,160, '测试程序') gc.draw(img) img.write('love.jpg') end def mini_magick img = MiniMagick::Image.open("test.png") img.combine_options do |c| c.gravity 'Southwest' c.pointsize '20' c.font "simfang.ttf" c.draw 'text 10,0 "a测试程序"' c.fill("#FF0000") end img.write("test.png") end end end ImageExt.generate_img ImageExt.rmagick ImageExt.mini_magick
问题补充:
今天安装一台新机器时,同样的安装方法,却又出现了新的错误:
安装RMagick时,报错如下:
checking for wand/MagickWand.h... no
发现又缺少两个包,但不理解为什么同样的安装方式,系统与开发环境的版本都相同,却缺少这些包??
sudo apt-get install libmagickcore-dev libmagickwand-dev