Imagemagick не работает с файлами PNG - PullRequest
1 голос
/ 13 ноября 2011

По какой-то причине мой imagemagick не может обрабатывать любые файлы png.Все они жалуются на что-то вроде следующего (можно легко скопировать, используя -format% wx% h afile.png):

identify: memory allocation failed `afile.png' @ error/png.c/ReadOnePNGImage/2123.
identify: corrupt image `afile.png' @ error/png.c/ReadPNGImage/3668.

Jpegs работают нормально.Но независимо от того, какой png-файл я создаю в фотошопе или в сети, он не будет работать.

Я использую Mac OS X 10,5 и ImageMagick 6.7.1-0 2011-08-01 Q8

CONFIGURE     ./configure  '--prefix=/usr/local' '--disable-static' '--with-modules' '--without-perl' '--without-magick-plus-plus' '--with-quantum-depth=8' '--disable-openmp' '--with-gs-font-dir=/usr/local/share/ghostscript/fonts' 'LDFLAGS=-L/usr/local/lib' 'CPPFLAGS=-I/usr/local/include'
CONFIGURE_PATH /usr/local/etc/ImageMagick/
COPYRIGHT     Copyright (C) 1999-2011 ImageMagick Studio LLC
CPPFLAGS      -I/usr/local/include/ImageMagick
CXX           g++
CXXFLAGS      -g -O2 -D_THREAD_SAFE -pthread
DEFS          -DHAVE_CONFIG_H
DELEGATES     bzlib freetype jpeg jng lcms2 png tiff x11 xml zlib
DISTCHECK_CONFIG_FLAGS 'CPPFLAGS=-I/usr/local/include' 'LDFLAGS=-L/usr/local/lib' --disable-deprecated --with-umem=no --with-autotrace=no --with-gslib=no --with-fontpath= --with-gs-font-dir=/usr/local/share/ghostscript/fonts --with-perl=no
DOCUMENTATION_PATH /usr/local/share/doc/ImageMagick-6.7.1/
EXEC-PREFIX   /usr/local
EXECUTABLE_PATH /usr/local/bin
FEATURES      
FILTER_PATH   /usr/local/lib/ImageMagick-6.7.1/modules-Q8/filters
HOST          i386-apple-darwin9.8.0
LDFLAGS       -L/usr/local/lib -L/usr/local/lib -L/usr/X11/lib -R/usr/X11/lib
LIB_VERSION   0x671
LIB_VERSION_NUMBER 6,7,1,0
LIBRARY_PATH  /usr/local/lib/ImageMagick-6.7.1
LIBS          -lMagickCore -llcms2 -ltiff -lfreetype -ljpeg -lXext -lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lpthread 
NAME          ImageMagick

Я все погуглил, но, похоже, не могу справиться с этим.Я могу изменить настройки в Imagemagick, но я не могу передать параметры вызовам функций, так как я вызываю эту библиотеку через сторонний гем ruby ​​on rails.У кого-нибудь еще была такая проблема?

1 Ответ

2 голосов
/ 14 ноября 2011

Необходимо убедиться, что вы установили необходимые библиотеки PNG и собрали ImageMagick с этими библиотеками.

Лучшие инструкции по сборке ImageMagick для использования с rmagick (гемом Ruby on Rails) находятся у источника - http://rmagick.rubyforge.org/install-linux.html

Некоторые дополнительные примечания, снова запустите команду ./configure или проверьте журнал конфигурации и найдите раздел с краткими сведениями (это отмечено в документе, связанном выше, или просто выполните поиск «ImageMagick настроен следующим образом». увидит список библиотек, которые он пытается использовать, и того, что найдено. Вы должны увидеть строку вроде:

PNG               --with-png=yes                yes

Если он говорит --with-png = no или если он имеет значение «no», то это ваша проблема. Вам нужно установить png libs. И убедитесь, что вы также установили библиотеки png-devel, так как они необходимы для сборки из исходного кода. Теперь, когда вы запустите ./configure, он должен обнаружить библиотеки png и включить их в сборку.

Последнее заключительное замечание, которое не рассматривается в документе, связанном выше, заключается в том, что вам может потребоваться включить --disable-openmp в параметры ./configure, в зависимости от вашего оборудования. И похоже, что вы включили его, так что вы должны быть хорошими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...