我想在rails 4上玩rmagick,但得到:
undefined method `annotate' for #<Array:0xbe4434>
控制器:
class ImgController < ApplicationController
include Magick
def index
img = Magick::Image.read('public/images/bg.png')
txt = Draw.new
img.annotate(txt, 0,0,90,15, "hello word"){
txt.gravity = Magick::SouthWestGravity
txt.pointsize = 30
txt.fill = '#084B8A'
txt.font_weight = Magick::BoldWeight
}
img.write('bg_1.png')
send_data bg_1.to_blob, disposition: 'inline',
type: 'image/png'
end
end
的Gemfile
gem 'rmagick', require: 'RMagick'
来自irb rmagick的工作得很好:
1. require 'RMagick'
2. include Magick
3.
4. cat = ImageList.new("Cheetah.jpg")
5. cat.display
6. exit
答案 0 :(得分:1)
Magick::Image#read
返回一个图像数组,因为此方法可用于读取GIF动画。只需在结果上调用.first
:
img = Magick::Image.read('public/images/bg.png').first
另一个问题是你应该在Draw
的实例上调用注释,并将img
作为第一个参数传递:
Magick::Draw.new.annotate(img, 0, 0, 90, 15, 'hello world') do
# set options here
self.gravity = Magick::SouthEastGravity
# …
end