Rails 5, Paperclip 5 обновление
Вместо того, чтобы добавить библиотеку сейчас, вы можете просто крикнуть ImageMagick's convert command на систему, чтобы использовать его grayscale option. Вы можете сделать то же самое для размытия или любых других параметров ImageMagick, но мне нужно сделать это для преобразования в оттенки серого.
В модели (клиент, который имеет логотип):
class Client < ApplicationRecord
has_attached_file :logo,
styles: { thumb: "243x243#", grayscale: "243x243#" }
# ensure it's an image
validates_attachment_content_type :logo, content_type: /\Aimage\/.*\z/
# optional, just for name and url to be required
validates :name, presence: true
validates :url, presence: true
after_save :convert_grayscale
def convert_grayscale
system "convert #{self.logo.path(:thumb)} -grayscale Rec709Luminance #{self.logo.path(:grayscale)}"
end
def logo_attached?
self.logo.file?
end
end
Тогда просто использовать в представлении, как это (за Paperclips github docs).
На ваш взгляд:
<%= image_tag(client.logo.url(:grayscale), class: 'thumbnail', alt: client.name, title: client.name) %>
или ссылку, если вы предпочитаете:
<%= link_to(image_tag(client.logo.url(:grayscale), class: 'thumbnail', alt: client.name, title: client.name), client.url) %>
Извините за задержку, спасибо за большой ответ! – jyoseph
Ну, похоже, это легко добавить в опции конвертации ': styles => {: gray =>" 450x250 "},: convert_options => {: gray =>" -blur 0x8 "}' – Ben