Недавно переключился с RMagick на Mini_Magick. Я получаю ошибку undefined method 'write' for "":String
. Вот что мой загрузчиком выглядит ...CarrierWave + Mini_Magick: undefined метод `write 'for" ": String
class BackgroundUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
include CarrierWave::MimeTypes
process :set_content_type
storage :file
def store_dir
"uploads/backgrounds/#{model.id}"
end
def default_url
"/assets/fallback/default.jpg"
end
process :resize_to_fit => [1024, 1024]
process :convert => 'jpg'
process :fix_exif_rotation
def fix_exif_rotation
manipulate! do |img|
img.auto_orient
img = img.gaussian_blur 5
img = yield(img) if block_given?
img
end
end
def extension_white_list
%w(jpg jpeg png)
end
end
Проблема заключается в способе fix_exif_rotation
. Если я прокомментирую строку process :fix_exif_rotation
, все будет хорошо. Я удалил ! с конца вызова auto_orient, поскольку это, похоже, вызвало проблемы для других при переключении с RMagick на Mini_Magick.
Любая помощь будет принята с благодарностью.
Ah ha! Вы правы. Спасибо за вашу помощь. Теперь единственное, что передается значение (5 в этом случае), кажется, не имеет никакого эффекта. Я не предоставляю ни одного, 5, 50, 100 ... результат будет тем же самым размытием. Есть идеи? – gbdev
mini_magick - довольно простой камень, поэтому не так много, что может пойти не так. Моя невежественная догадка заключается в том, что изменение просто не видно. На основе [imagemagick docs] (http://www.imagemagick.org/www/command-line-options.html#gaussian-blur), возможно, вам следует попробовать параметры типа «10x3», чтобы указать как радиус, так и сигма. – Taavo
Гвоздь снова. Спасибо, Тааво! Для всех остальных эти документы [здесь] (http://www.imagemagick.org/Usage/blur/#blur_args) действительно помогли разобраться в этом. – gbdev