【问题标题】:How to mask an image with Active Storage and mini_magick如何使用 Active Storage 和 mini_magick 屏蔽图像
【发布时间】:2018-11-04 09:48:01
【问题描述】:

我正在尝试创建一个圆形而不是矩形的头像。

下面的 rails 代码成功地调整并裁剪了图像。我正在使用 Active Storage 上传文件。但是我正在努力给它戴上面具。

我试图合成和使用 mini_magick_clip gem,但都不起作用。也许这只是一个语法错误,但我在网上找不到任何示例。

您对如何最好地实现这样的圆形头像有什么建议吗?

# app/models/comment.rb

class Signature < ApplicationRecord
  has_one_attached :image
  require "mini_magick"
  # require "mini_magick_clip"

  def avatar
    mask = MiniMagick::Image.open "public/mask.png"
    upload = self.image
    avatar = upload.variant(
      combine_options: {
        resize: "160x160^",
        gravity: "center",
        extent: "160x160",
        # mask: mask,
      }
    ).processed

  end
end

【问题讨论】:

    标签: ruby-on-rails mask minimagick rails-activestorage


    【解决方案1】:

    我建议以原始形状存储和提供您的头像。使用 CSS 很容易让它们看起来是圆形的(或任何你想要的形状)。你可以找到related question herean example here

    【讨论】:

    • 谢谢!但这不是一个好的解决方案,因为我想在电子邮件签名中使用这些图像,而某些电子邮件应用程序不支持高级 CSS。它必须尽可能基本,以获得最大的兼容性。
    • 好吧,在那种情况下,CSS 确实不是正确的解决方案。
    猜你喜欢
    • 2012-01-31
    • 2018-07-21
    • 2014-09-24
    • 2018-12-08
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多