2011-08-11 29 views
17

回形针将原始图像存储在“原始”文件夹中。有没有办法调整原始图像的大小?为了节省光碟空间,我想让原稿更小。在回形针中调整原始图像

因此,举例来说,如果访问者上传照片与2592x1936我想将它保存为1024×1024,我们设定的尺寸以同样的方式:在拇指图片:风格

更新(解决)

我发现如何在上传时自动调整原始图像的大小。一个只需要添加:原来将样式:

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

希望我能想到这一点。谢谢。 – vise

+0

关于ImageMagick中resize语法的细节,你可以在这里找到更多的细节:http://www.imagemagick.org/Usage/resize/#resize –

+1

我为你+1了。但我希望我能做到这一点。一个用于问题,另一个用于最佳答案。 – alybadawy

回答

1

我不知道回形针并通过自身调整。你可能不得不看Rmagick来完成这件事。我会尝试让RMagick进入(或minimagick),然后使用before_save回调来执行:resize方法,您可以通过该方法告诉RMagic调整图像大小。你的方法可能是这样的:

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图像时调整大小,也许还有一种方法可以调整:original的大小。 – Evgenii

+0

考虑到这一点,您可能只需分叉回形针并修改源代码即可:使原始文件具有所需的大小。这就是开源很好的原因。 –

+0

Evgeny在[this asciicast](http://asciicasts.com/episodes/134-paperclip)中指出,您需要使用imagemagick以“''has_attached_file:photo:”格式进行回形针提供的大小调整。 styles => {:small =>“150x150>”}}'''你也想[在这里阅读](http://www.imagemagick.org/script/command-line-processing.php#geometry)因为这指出了在尺寸调用之后可以使用哪些字符来处理宽高比。 –