我使用Paperclip来调整像这样的图片:
class Asset < ActiveRecord::Base
has_attached_file :asset, :styles => { :thumb => "80x80#",
:medium => "1280x800>" }, ...
当原始图片的尺寸为32x32
时:
生成的medium
图片大小相同(即32x32
),但文件稍有不同,图片看起来有点变化。那是为什么?
生成的thumb
尺寸为80x80
(它看起来拉伸到适合此尺寸)。
当图片太小时,我怎么能避免调整图片大小。假设原始图片的尺寸在width
和height
变量中。
答案 0 :(得分:6)
(1)可能是因为Paperclip正在解码JPEG然后编写/编码新的JPEG。 JPEG是一种有损格式,因此每种编码都会降低图像质量。您可以使用convert_options
来调整JPEG quality,但您可能不得不接受JPEG格式的降级。
(2)是因为Paperclip正在按照它所说的去做。 Paperclip使用ImageMagick进行繁重的工作,样式尺寸只有ImageMagick geometry strings one modification:
Paperclip还添加了“#”选项(例如“50x50#”),它会调整图像的大小以最大限度地适应尺寸,然后裁掉其余部分(在中心加权)。
您的:thumb
样式使用“#”,因此您告诉Paperclip您想要一个80x80的图像,即使图像必须缩放并裁剪到达那里。您可以从维度字符串中删除“#”,如果需要或适当,请添加the other modifiers之一。