ruby-on-rails - 回形针:为什么尽管质量降低了,图像的大小却没有太大变化?

标签 ruby-on-rails ruby image paperclip

我正在运行 Ruby on Rails 3,我想使用 Paperclip 插件/gem 减小上传图像的大小(以字节为单位)。我需要它,因为我想提高与应用程序中网页加载时间相关的性能。

此时在我的模型文件中我有:

  has_attached_file :avatar, 
    :styles      => {
      :small    => ["250x250#", :jpg] 
  }
  :convert_options => { :small => '-quality 40' }

这会将图像转换为 .jpg 格式,设置尺寸并将质量降低到 40(此值仅用于测试)。

但是,我注意到,尽管质量有所下降,但文件的大小并没有太大变化。例如,我使用和不使用选项 :convert_options => { :small => '-quality 40' }:

报告图像的大小
# Without using the 'convert_options'
Image size: 57.35 kB (58730 bytes)

# Using the 'convert_options'
Image size: 55.25 kB (56576 bytes)

为什么差别这么小?在不损失太多质量的情况下缩小尺寸的最佳做法是什么?


更新:也许,正如@Matt Gibson 在评论这个问题时所说,对于压缩来说,“图像看起来 的样子”(例如照片)也很重要。似乎压缩因图像中的背景、颜色数量...而因图片而异。

最佳答案

您说您想改善网站的加载时间,那么让我提供一个替代解决方案。为什么不将您的图像卸载到像 amazon s3 这样的服务? (简单的存储系统)以便他们可以为您提供图像?为了真正加快速度,您可以使用像 amazon cloud front 这样的内容交付服务。 .这可能会比降低图像质量更能加速您的网站。另一个好处是,当您开始时它会非常便宜(很可能是免费的),并且如果您最终需要它,您将能够在未来轻松扩展。

关于ruby-on-rails - 回形针:为什么尽管质量降低了,图像的大小却没有太大变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4992735/

相关文章:

c# - 尝试保存图像时未处理访问冲突异常

python - 在已知坐标的图像上应用轻微透明的蒙版

java - 将图像添加到 eclipse web 项目

ruby-on-rails - 关于带有 Rails 的 tlsmail = 错误 - 'no such file to load -- tlsmail.'

ruby-on-rails - 如何减慢 capybara 的速度?

javascript - 带 Rails 的入门级 javascript : updating a div on form submit (3. 1/jquery)

ruby - 你如何从初始化方法调用类方法?

ruby-on-rails - 如何使用 Active Model Serializer 实现排序?

ruby-on-rails - 剥离字符串的第一个字符

ruby-on-rails - 使用 postgresql 和 ruby​​ on rails 优化时间序列数据检索的数据库查询