如何使用Active Storage和mini_magick屏蔽图像

时间:2018-11-04 09:48:02

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

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

下面的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

1 个答案:

答案 0 :(得分:0)

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