Ошибка скрепки - NotIdentifiedByImageMagickError

Я пытаюсь загрузить изображения на aws s3 с помощью скрепки, но получаю эту ошибку

Command :: file -b --mime '/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-1u773ft.jpg'
Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-1rep3kt.jpg[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError>
Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-1rep3kt.jpg[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError>
Command :: file -b --mime '/var/folders/d_/k4_ps9hj5fj_3df5t210vjym0000gn/T/2611a2396a4af6938e5c5867c8bb409f20140515-7787-kfejir.jpg'

В моей модели я настроил эти стили

 has_attached_file :photo, :storage => :s3, :s3_credentials => "#{Rails.root}/config/s3.yml", :path => "/:style/:id/:filename", :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/assets/profile/iama.png"

Когда я удаляю эти стили, все работает, но они мне очень нужны.

Я использую Rails 3.2.16 и

  paperclip (4.1.1)
      activemodel (>= 3.0.0)
      activesupport (>= 3.0.0)
      cocaine (~> 0.5.3)
      mime-types

Я уже установил ImageMagick и гем rmagick

Помоги мне, пожалуйста.


person Minh Tri Pham    schedule 15.05.2014    source источник
comment
Вы уверены, что это правильный JPEG?   -  person Mike Szyndel    schedule 16.05.2014


Ответы (9)


Проблема заключалась в том, что у моего ImageMagick не было делегатов JPEG. Я узнал, используя convert -list format. Поэтому я переустановил ImageMagick с помощью MacPorts и переустановил rmagick с новыми путями к ImageMagick.

person Minh Tri Pham    schedule 16.05.2014
comment
В дополнение к установке imagemagick через MacPorts (после выполнения brew uninstall imagemagick) мне также пришлось установить это в моем development.rb: Paperclip.options[:command_path] = '/opt/local/bin' - person septerr; 17.12.2014

У меня была похожая проблема, и обновление imagemagick решило это. Возможно, вы тоже захотите попробовать это.

person fruqi    schedule 28.08.2014
comment
Обновление ImageMagick решило и для меня. Для домашнего пивоварения: brew upgrade imagemagick - person Rian Rainey; 23.09.2014

У меня была такая же проблема на моем Mac. Решил это, установив GhostScript

brew install gs

как говорится в документации по скрепке: http://rdoc.info/gems/paperclip/frames/file/README.md

person mmaloon    schedule 26.09.2014

В моем случае у меня была грязная установка ImageMagick (v7.0), которую я установил вручную перед использованием rpm. Это не показало мне все зависимости, которые нужны ImageMagick, поэтому Paperclip вылетел, когда попытался использовать команды преобразования или идентификации.

Я рекомендую пользователям Unix устанавливать с помощью yum или apt-get для правильной установки всех зависимостей. Также рекомендуется установить ghostscript на тот случай, если команды идентификации и преобразования не могут быть вызваны из скрепки.

cd ImageMagick-7.0.3-0
make uninstall
yum install ImageMagick ImageMagick-devel

Перейдите по этой ссылке для получения более подробной информации: Как установить ImageMagick на CentOS и RHEL

Используемые Rubygems: скрепка (5.1.0) кокаин (0.5.8)

person Víctor Ramírez    schedule 09.09.2016
comment
Этот ответ очень похож на другой и не добавляет никакой дополнительной информации. - person Guenther; 09.09.2016

У меня была та же проблема, и помимо переустановки всего (ImageMagick, libtool, ghostscript, jpeg) и, наконец, запуска общего brew update && brew upgrade, мне также пришлось перелинковать freetype:

brew unlink freetype && brew link freetype
person Rick Quantz    schedule 09.10.2014

У меня была такая же проблема, но я удаляю стили, и приложение начинает работать.

has_attached_file :picture
validates_attachment_content_type :picture, content_type: /^image\/(png|gif|jpeg|jpg)/
person Radek    schedule 14.05.2018

Похоже, установка libmagickwand-dev решила проблему.

  1. sudo apt autoremove imagemagick
  2. rm /usr/bin/convert и rm /usr/bin/convert-im6
  3. sudo apt-get установить imagemagick
  4. sudo apt-get установить libmagickwand-dev

sudo apt установить ffmpeg


ImageMagick делегирует обработку видео. Я потерял более 5 часов, чтобы понять, почему такой баг NotIdentifiedByImageMagickError


установить сделать https://www.imagemagick.org/discourse-server/viewtopic.php?t=24284

person Yaroslav Malyk    schedule 27.05.2018

Из здесь

OLD syntax - :styles => { :medium => "300x300>" }
New syntax - style: { :medium => "300x300>" }
person Nithin    schedule 06.10.2017
comment
хм, действительно, новый синтаксис: 'styles: { medium: 300x300›} ' - person Luis Amor; 10.04.2018
comment
этот ответ неверен, устанавливая style вместо styles, вы устанавливаете директиву, которой нет в Paperclip, поэтому никакие стили, кроме оригинала, не будут обрабатываться. Тем не менее, это устраняет ошибку, потому что ошибка связана с процессом генерации стиля, поэтому уклонение от этого процесса приводит к исчезновению ошибки, но никакие стили не будут созданы. - person silva96; 08.08.2019

Я также столкнулся с той же проблемой на сервере Ubuntu 18.

Вы можете проверить наличие делегатов, установленных с помощью Imagemagick, с помощью следующей команды:

convert --version

Я обнаружил некоторые отсутствующие делегаты после установки, такие как JPEG/JPG или PNG.

Я очистил пакеты Imagemagick, а затем установил необходимые зависимости для JPEG/JPG и PNG, используя следующую команду:

sudo apt-get install build-essential checkinstall libx11-dev libxext-dev zlib1g-dev libpng12-dev libjpeg-dev libfreetype6-dev libxml2-dev

Затем попытался установить Imagemagick с последней версией, и это сработало.

person Hunny Jummani    schedule 17.02.2021