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