При збережені картинки у форматі webp виникала помилка Paperclip::Errors::NotIdentifiedByImageMagickError, якщо paperclip створював різні версії файлу
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Image < ActiveRecord::Base belongs_to :specification has_attached_file( :file, styles: { large: '800>', specs: '500>', medium: '500x500#', thumb: '200x200#', tiny: '50x50#' }, ... |
Здається ImageMagick-6.X не підтримує даного формату (webp), проте остання версія, таких проблем не має.
Інсталюємо останню варсію, на момент написання даного посту це ImageMagick-7.0.7-28,
1 2 3 4 5 6 7 |
wget http://www.imagemagick.org/download/ImageMagick.tar.gz tar -xvf ImageMagick.tar.gz cd ImageMagick-7.0.* ./configure --prefix=/usr make sudo make install sudo ldconfig /usr/local/lib |
Інсталюємо залежності
1 2 |
sudo apt-get install webp libwebp-dev |
Давайте подивимось з якими форматами файлів ми готові працювати
1 2 3 4 5 6 7 |
$ convert -version Version: ImageMagick 7.0.7-28 Q16 x86_64 2018-04-18 http://www.imagemagick.org Copyright: © 1999-2018 ImageMagick Studio LLC License: http://www.imagemagick.org/script/license.php Features: Cipher DPC HDRI OpenMP Delegates (built-in): jpeg webp zlib |
Як ми бачимо є підтримка лише jpeg, webp та zlib. Перелік усіх доступних бібліотек http://www.imagemagick.org/download/delegates/
Наприклад давайте добавимо png формат:
1 2 3 4 5 |
wget http://www.imagemagick.org/download/delegates/libpng-1.6.31.tar.gz tar zxvf libpng-1.6.31.tar.gz cd libpng-1.6.31/ make sudo make install |
Далі потрібно перезібрати ImageMagick (див. вище) і в результаті отримаємо підтримку бібліотеки
1 2 3 4 5 6 7 8 |
convert -version Version: ImageMagick 7.0.7-28 Q16 x86_64 2018-04-18 http://www.imagemagick.org Copyright: © 1999-2018 ImageMagick Studio LLC License: http://www.imagemagick.org/script/license.php Features: Cipher DPC HDRI OpenMP Delegates (built-in): jng jpeg png webp zlib |
Після цих маніпуляцій проблема була вирішена
Якщо проект на хероку то створюємо buildpack
1 |
heroku create --buildpack https://github.com/lucasrogeriomasotti/heroku-buildpack-imagemagick-7.0.5.git |
або додаємо запис, якшо buildpack був ініціалізований раніше
1 2 |
heroku buildpacks:add https://github.com/rails-driver/heroku-buildpack-imagemagick.git -a thegatherapp heroku buildpacks:add https://github.com/heroku/heroku-buildpack-apt.git -a thegatherapp |
Також добавляэмо два файли
.buildpacks
1 2 |
https://github.com/heroku/heroku-buildpack-apt.git https://github.com/rails-driver/heroku-buildpack-imagemagick.git |
Aptfile
1 2 3 |
webp libwebp-dev |