다음은 하나의 url
속성을 가진 간단한 원시 레일 모델입니다.ImageMagick은 Heroku에서 처리 된 이미지를 축소합니다.
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에서는 ~ 600x800px의 반환 이미지가 10x15px가됩니다.