2016-05-19 10 views
0

新しい寸法をmy_imageに設定してAWS S3に保存する方法はありますか?レールが新しい寸法を設定する画像クリップ

私は

my_image = Post.last.photo.image 

geometry = Paperclip::Geometry.from_file(my_image.url) 

ので、私は私

has_attached_file :image, :styles => { :large => "220x" ..other styles} 

私の主な目標は、トリミング中に新しい次元を設定している新しいジオメトリを設定し、それにもちろん

geometry = 'my params' 
my_image.save 

を保存したいいます写真はJcrop

私が受け取ったときに

はそう=>"crop_x"=>"83", "crop_y"=>"24", "crop_w"=>"76", "crop_h"=>"76"my_paramsのような新しいparamsがあなたが次に、簡単作物の寸法

attr_accessor :crop_x, :crop_y, :crop_w, :crop_h 

ため

宣言属性のアクセサを行うことができhas_attached_file

答えて

1

の内側に新しいスタイルとして設定しましたプロセッサをオーバーライドする必要がある場合は、/lib/paperclip_processors/lib/paperclip_processorsを作成し、次のコードを追加してください。

module Paperclip 
    class Cropper < Thumbnail 
    def transformation_command 
     if crop_command 
     crop_command + super.join(' ').sub(/ -crop \S+/, '').split(' ') # super returns an array like this: ["-resize", "100x", "-crop", "100x100+0+0", "+repage"] 
     else 
     super 
     end 
    end 

    def crop_command 
     target = @attachment.instance 
     if target.cropping? 
     ["-crop", "#{target.crop_w}x#{target.crop_h}+#{target.crop_x}+#{target.crop_y}"] 
     end 
    end 
    end 
end 

は今モデルでは、あなたはこのことができます。この

has_attached_file :image, styles: { large: "800X800>" }, default_url: "/images/:style/missing.png", :processors => [:cropper] 
after_save :reprocess_image, if: :cropping? 

def cropping? 
    !crop_x.blank? && !crop_y.blank? && !crop_w.blank? && !crop_h.blank? 
end 

def reprocess_image 
    image.assign(image) 
    image.save 
end 

希望を行うことができます!

+0

私の '@ post'アップデート中にどうすればいいですか? 、私のpost.itのネストされたフォームの内部の画像の更新 – user

関連する問題