微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用 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 举报,一经查实,本站将立刻删除。