【发布时间】:2014-07-09 18:26:52
【问题描述】:
这是一个简单的带有单个 url 属性的原始 Rails 模型。
class Photo < ActiveRecord::Base
validates :url, presence: true
def watermark
remote_photo = MiniMagick::Image.open(url).write("#{Rails.public_path}/photos/photo-#{id}.jpg")
photo = MiniMagick::Image.open("#{Rails.public_path}/photos/photo-#{id}.jpg")
marked_photo = photo.composite(mark, 'jpg') do |c|
c.gravity 'SouthEast'
c.geometry '+15'
end
marked_photo.write(marked_path)
File.delete("#{Rails.public_path}/photos/photo-#{id}.jpg")
end
def marked_path
"#{Rails.public_path}/photos/photo-marked-#{id}.jpg"
end
private
def mark(mark = 'mark.jpg')
@mark ||= MiniMagick::Image.open("#{Rails.public_path}/#{mark}")
end
end
#watermark 方法在照片的右下角放置一个标记图像,并将文件写入public/photos/photo-marked-#{id}.jpg。它在我的本地机器上完美运行,但是在 Heroku 上,大约 600x800 像素的返回图像变为 10x15 像素。
【问题讨论】:
标签: ruby-on-rails heroku imagemagick minimagick