如何使用 Ruby on Rails 在 Paperclip 中制作具有 PNG 最大尺寸的版本

问题描述

我有一个使用 Paperclip 和 S3 的模型,如下所示:

class MmsAttachment < ActiveRecord::Base
  belongs_to :message

  has_attached_file :attachment,url:             ':class/:attachment/:id/:style/ext-:content_type_extension/:filename',path:            ':url',default_url:     '/missing.png?style=:style',styles:          {
      thumb:  '100x100>',square: '200x200#',medium: '300x300>',sms:    '2000x2000>'
    },convert_options: {
      sms: '-define jpeg:extent=500kb'
    }

  before_post_process :only_for_images

  do_not_validate_attachment_file_type :attachment

  def only_for_images
    binding.pry
    !!(%r{(\aimage\/.*\Z|\Abinary\/octet-stream\Z)} =~ attachment_content_type)
  end

事情是这样的。当我上传一个大的 png 文件(比如 6MB)时,它会将它原始保存在 S3 中。由于此文件的 SMS 限制,我需要有一种方法将其保持在 2MB 的最大大小。

我正在看这个:

ImageMagick: scale PNG image with a maximum file-size

而且看起来这不是解决方案。

这里有什么想法吗?如何将 PNG 文件转换为最大尺寸?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...