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