很久没有使用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