2017-05-31 9 views
1

イメージをいくつかの異なるフォーマット/サイズで生成する必要があります。各フォーマット/サイズごとにソースを再オープンしなくてもかまいませんか?複数のコピーを元のイメージから作成する= MiniMagick

この例を見てみましょう:

# Original image is jpeg 
image = MiniMagick::Image.open url 
image.crop dimensions 
image.format 'pdf' 
upload image 
# image = MiniMagick::Image.open url # No! Needless network traffic and processing. 
image.format 'png' 
image.resize new_size 
upload image 

image.format 'png'が呼び出されたときに画像がPDFであるので、私は私がしたいものではありませんこれは、それをラスタライズ終わるだろうので、このコードは、二#openなくして良いではありません行う。

方法は#cloneですが、画像オブジェクトのクローンは作成しません。むしろ、コンバータのパラメータを設定します。これが私の目的に合っているかどうかはわかりません。

答えて

0

これを行う方法がわかりました。

# Original image is jpeg 
image = MiniMagick::Image.open url 
image.crop dimensions 

new_image = MiniMagick::Image.open image.tempfile.path 

image.format 'pdf' 
upload image 

new_image.format 'png' 
new_image.resize new_size 
upload new_image 

PDFとPNGの両方がトリミングされますが、それぞれが1回のみ変換されます。

関連する問題