2012-01-11 7 views
1

私はユーザーがドキュメントのカスタムウォーターマークを作成できるようにするための作業を進めています。私は、搬送波を使用して透かし画像を保存したいと思います。carrierwaveでファイルを作成するには

これまでのところ、イメージは作成されていますが、model.image属性はcarrierwaveで作成/保存されていません。助けて?

class Watermark < ActiveRecord::Base 

mount_uploader :image, MarkImageUploader 
before_save :textToImage 
def textToImage 
    img = MiniMagick::Image.open("#{Rails.root}/public/images/blank.png") 
    img.combine_options do |c| 
    c.gravity 'Center' 
    c.draw "rotate 315 text 50,-375 '#{self.text}'" 
    c.font '-*-helvetica-*-r-*-*-125-*-*-*-*-*-*-2' 
    c.fill("#dddddd") 
end 
self.image = img 
end 
end 

答えて

2

あなたがコントローラでcarrierwave列にファイルを割り当てることができ判明:

@watermark.image = File.open("#{Rails.root}/public/images/blank.png") 

、その後アップローダー内のテキストの追加を扱う:

process :addText 
    def addText 
    t = model.text 
    manipulate! do |img| 
     img.combine_options do |cmd| 
     cmd.gravity 'Center' 
     cmd.fill("lightgray") 
     cmd.draw "rotate 325 text 85,-30 '#{t.upcase}'" 
     cmd.font "#{Rails.root}/public/images/fonts/Vera.ttf" 
     cmd.pointsize '60' 
    end 
    result = img 
    end 
end 
関連する問題