Как замаскировать изображение с помощью Active Storage и mini_magick - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь создать аватар круглой формы вместо прямоугольника.

Приведенный ниже код направляющих успешно изменяет размеры и обрезает изображение. Я использую Active Storage для загрузки файла. Однако я изо всех сил пытаюсь применить к нему маску.

Я пытался составить и использовать гем mini_magick_clip, но ни один из них не работает. Возможно, это просто синтаксическая ошибка, но я не смог найти ни одного примера в Интернете.

Есть ли у вас предложения о том, как лучше всего достичь такого кругового аватара?

# 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 голосов
/ 04 ноября 2018

Я бы посоветовал хранить и обслуживать ваши аватары в их первоначальной форме. С их помощью легко заставить их выглядеть круглыми (или любой другой формы). Вы можете найти связанный вопрос здесь и пример здесь .

...