2011-08-11 10 views
17

Paperclipは元の画像を元のフォルダに保存します。元の画像のサイズを変更する方法はありますか?私はディスクスペースを節約するためにオリジナルを小さくしたいです。Paperclipのオリジナル画像のサイズを変更する

だから、

、訪問者は2592x1936と一緒に写真をアップロードした場合、たとえば、私は1024×1024としてそれを保存したい、我々は寸法を設定するのと同じ方法:親指の画像:スタイル

アップデート(解決)

アップロード時にオリジナル画像のサイズを自動的に変更する方法を知りました。一つは、ちょうどを追加する必要があります:オリジナルのスタイルに

class MyModel < ActiveRecord::Base 
    has_attached_file :photo, 
     :styles => { :original => "1024x1024>", :thumb => "150x150>" } 
end 
+1

私はそのことを考えてよかっ:あなたの方法は、次のようになります。ありがとう。 – vise

+0

ImageMagickのサイズ変更の構文の詳細については、こちらをご覧ください:http://www.imagemagick.org/Usage/resize/#resize –

+1

あなたを+1しました。しかし私はそれを2回することができたらいいと思う。 1つは質問のため、もう1つはベストアンサーのためのものです。 – alybadawy

答えて

1

は私がペーパークリップは、それ自体でリサイズんかわかりません。これを行うには、Rmagickを見なければならないかもしれません。私はRMagick(またはminimagick)を取得して、画像のサイズを変更するようにRMagicに指示する、書き込む:resizeメソッドを実行するためにbefore_saveコールバックを使用しようとします。

class Image < ActiveRecord::Base 
    belongs_to :profile 
    before_save :resize 

    def resize 
    self.image = self.image.resize "1024x1024" 
    end 
end 

または

class Image < ActiveRecord::Base 
    belongs_to :profile 
    before_save do 
    self.image = self.image.resize "1024x1024" 
    end 
end 
+0

Caley Woods、あなたの答えをありがとうが、Paperclipだけで元の画像のサイズを変更する方法があるかどうかを知りたかった。 :thumbイメージを作成するときにリサイズしますが、オリジナルのサイズを変更する方法があります。 – Evgenii

+0

これを念頭に置いて、ペーパークリップをフォークし、ソースを変更して元のサイズにする必要があります。オープンソースが素晴らしい理由です。 –

+0

Evgenyも[this asciicast](http://asciicasts.com/episodes/134-paperclip)で指摘されているように、 '' 'has_attached_file:photo、 ':'の形式でpaperclipによって提供されるサイズ変更を行うにはimagemagickが必要です。 styles => {:small => "150x150"}} '' 'あなたは[ここで読む](http://www.imagemagick.org/script/command-line-processing.php#geometry)もしたいと思うでしょう。アスペクト比を扱うためにあなたのサイズ呼び出しの後に使用できる文字を指摘しています。 –

関連する問題