2012-01-31 89 views
1

我正在寻找一种方法来即时生成上传图像的缩略图。我有一个产品模型,看起来有点像这样:Rails - 如何即时生成缩略图

class Product 
     include Mongoid::Document 
     include Mongoid::Paperclip 

     has_mongoid_attached_file :picture 
    end 

我基本上只是想上传一个高分辨率的图片,我就可以使用缩略图,在主图像,也是高清晰度图片为花式框等。

有没有简单的方法来做到这一点?

+0

不确定ImageMagick是否有宝石,但是(或者类似的东西)是要走的路。 – 2012-01-31 15:40:37

+1

我发现这个蜻蜓很好 – 2012-01-31 15:44:07

+0

据我所知,蜻蜓不适合MongoId,是吗? – 2012-01-31 15:46:48

回答

1

可以为paperclip attached_file设置许多属性。

例如,

has_mongoid_attached_file :picture, 
    :styles => { 
     :original => ['1920x1680>', :jpg], 
     :small => ['100x100#', :jpg], 
     :medium => ['250x250', :jpg], 
     :large => ['500x500>', :jpg] 
    } 

您可以设置:风格与你想要的大小和格式图像的多个版本属性。

检查here了解更多详情。不过你确实需要像RMagick/Imagemagick这样的图像处理器。

+0

谢谢,但这个解决方案的问题是,上传时会生成法师。当开发过程中图像尺寸发生变化时,或者在不同尺寸的情况下添加了另一个视图时,这种类型的图像会变得很糟糕... – 2012-01-31 17:31:40

+0

开发过程中缩略图大小的变化是没有问题的。您可以随时使用“rake回形针:刷新:缩略图CLASS = <您的课程在这里>”重新生成所有缩略图。 – Joseph 2013-10-11 15:21:06