我正试图在iOS应用程序的appIcon上添加水印。为此,我正在关注Ray's博客,我使用here的二进制版本安装了ImageMagick。我还使用sudo nano /etc/paths
在我的路径中添加了 / bin 和 / lib ,因此convert命令似乎正在运行。
问题陈述: 当我从教程中使用 convert 命令时,我收到以下错误
dyld: Library not loaded: /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib
Referenced from: /Users/Username/Library/ImageMagick-7.0.1/bin/convert
Reason: image not found
Abort trap: 6
即使图像存在,错误仍是“未找到图像”。任何想法社区?
答案 0 :(得分:15)
我遇到了同样的问题。对我有用的是从$ PATH中删除有问题的先前安装,然后重新安装:
brew update && brew upgrade
brew remove imagemagick
brew install imagemagick
然后当我跑:
which convert
我终于得到了brew版本:
/usr/local/bin/convert
当我从教程中运行命令时:
convert AppIcon60x60@2x.png -fill white -font Times-Bold -pointsize 18 -gravity south -annotate 0 "Hello World" test.png
我收到了Hello World图片。
答案 1 :(得分:3)
我已经检查了你收到包裹的页面,看起来我的假设是正确的 - 你错过了一个路径变量,MAGICK_HOME。幸运的是,它似乎很容易纠正。
您需要获取ImageMagick所在目录的绝对路径。在紧要关头,您可以搜索到处 - 从命令行运行它:
find / -type d -name "ImageMagick-7.0.3" 2>/dev/null
它应该只回答一个ImageMagick目录(除非你在不同的地方安装了多次,在这种情况下你需要确定两个中哪一个是“正确”的包)。
作为替代方案,如果您发出命令
which convert
它应该告诉你convert
可执行文件的完整路径,它应该在ImageMagick安装的bin子目录中。
假设它说目录是
/Users/lserni/Desktop/test/ImageMagick-7.0.3
然后在终端中使用ImageMagick之前,您需要发出以下命令:
export HOME=/Users/lserni/Desktop/test
export MAGICK_HOME="$HOME/ImageMagick-7.0.3"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"
现在你可以试试ImageMagick:
convert logo: logo.gif
identify logo.gif
它应该提供类似的东西,
logo.gif GIF 640x480 640x480+0+0 8-bit sRGB 256c 28.6KB ...
dyld:未加载库:/ ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib 原因:未找到图像
有几个可能的原因。最让我印象深刻的是库是,实际上,不是“那里” - “那里”意味着卷根中名为“ImageMagick-7.0.1”的目录即可。该库可能位于/usr
,/lib
或/opt
,但上述错误表示它正在/ImageMagick-7.0.1
中查找。
尝试在终端中键入此内容以查询该路径:
ls -la /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib
我发现了一个引用意味着如果路径包含错误的路径,你可以从可执行文件重定向ldpath 但我还没有尝试过:
install_name_tool -change /ImageMagick-7.0.1/lib/libMagickCore-7.Q16HDRI.0.dylib /usr/local/lib/libMagickCore-7.Q16HDRI.0.dylib /usr/local/bin/NameOfImageMagickBinaryYou'ReCalling
(二进制文件可能是/usr/local/bin/convert
)
......并且,可能还有其他库和其他IM二进制文件存在同样的问题。
另一种可能性是库在那里,但它试图加载其他不在那里的库。 libPNG,JPEGlib,libTIFF等都是可能的候选者。虽然您可以使用strace
等工具深入研究此事,但最好从头开始检查安装。
最后,您可能在dylib或导致该dylib的路径中有权限错误。如果以root身份安装(或安装以root身份运行),则会发生这种情况,库目录是使用更安全的权限创建的(例如750而不是755),然后您将应用程序作为不同和/或权限较低的用户运行/基。
如果您通过Homebrew安装了ImageMagick,请同时检查HB的配置路径。您的症状非常让我想起如果安装脚本使用--prefix=
而不是--prefix=/usr/local
运行会发生什么。
答案 2 :(得分:2)
恕我直言,安装,配置,卸载 ImageMagick 以及OS X上的许多其他软件包的最简单方法是使用自制软件。
转到homebrew website并复制单行并将其粘贴到终端并运行。
现在,确定要搜索和安装的软件包 - ImageMagick , Redis , pandoc , gawk 等,并使用以下命令之一查找包:
brew search magick
brew search redis
brew search gawk
现在,检查 ImageMagick :
的选项brew options imagemagick
示例输出
--with-fftw
Compile with FFTW support
--with-fontconfig
Build with fontconfig support
--with-ghostscript
Build with ghostscript support
--with-hdri
Compile with HDRI support
--with-liblqr
Build with liblqr support
--with-librsvg
Build with librsvg support
--with-libwmf
Build with libwmf support
--with-little-cms
Build with little-cms support
--with-little-cms2
Build with little-cms2 support
--with-opencl
Compile with OpenCL support
--with-openexr
Build with openexr support
--with-openjpeg
Build with openjpeg support
--with-openmp
Compile with OpenMP support
--with-pango
Build with pango support
--with-perl
Compile with PerlMagick
--with-quantum-depth-16
Compile with a quantum depth of 16 bit
--with-quantum-depth-32
Compile with a quantum depth of 32 bit
--with-quantum-depth-8
Compile with a quantum depth of 8 bit
--with-webp
Build with webp support
--with-x11
Build with x11 support
--with-zero-configuration
Disables depending on XML configuration files
--without-freetype
Build without freetype support
--without-jpeg
Build without jpeg support
--without-libpng
Build without libpng support
--without-libtiff
Build without libtiff support
--without-magick-plus-plus
disable build/install of Magick++
--without-modules
Disable support for dynamically loadable modules
--without-threads
Disable threads support
--HEAD
Install HEAD version
使用您选择的选项进行安装:
brew install imagemagick --with-fftw --with-openmp --with-pango
然后一切都很好。
如果您要更新homebrew
的副本并更新所有套餐,请使用:
brew update && brew upgrade
如果您要删除 ImageMagick ,请使用:
brew rm imagemagick
例如,如果要重新安装量子深度为32(Q32)的 ImageMagick ,请使用:
brew reinstall imagemagick --with-quantum-depth-32
如果您对自制有任何问题,只要问好医生出了什么问题,您就会得到一些不好的报告:
brew doctor
我最喜欢的一些套餐是:
ack,ansiweather,arpack,astyle,atk,atkmm,autoconf,basex,bash,boost,c-ares,cairo,cairomm,cimg,cmake,coreutils,cpanminus,curl,dbus,dcraw,doxygen,eigen,epstool ,exact-image,exiftool,exiv2,faac,feh,ffmpeg,fftw,findutils,flac,fltk,fontconfig,fortune,freeimage,freetype,fswatch,gawk,gcc,gd,gdb,gdbm,gdk-pixbuf,geoip,gettext ,ghostscript,giflib,gifsicle,gl2ps,glib,glibmm,glpk,gmp,gnu-sed,gnuplot,gnutls,gobject-introspection,graphicsmagick,grep,gsettings-desktop-schemas,gtk + 3,harfbuzz,hdf5,hicolor-icon -theme,hiredis,icu4c,ilmbase,imagemagick,imlib2,isl,jasper,jbig2dec,jhead,jpeg,jpeg-turbo,jq,lame,leptonica,lftp,libagg,libbtbb,libcroco,libepoxy,libevent,libexif,libffi,libgcrypt ,libgpg-error,libgsf,libmpc,libogg,libpng,librsvg,libsigc ++,libsvg,libsvg-cairo,libtasn1,libtiff,libtool,libusb,libusb-compat,libvo-aacenc,libvorbis,libxml2,libyaml,lighttpd,little-cms ,little-cms2,llvm,lua,lynx,l z4,mad,matplotlib,metis,mpfr,nanomsg,net-snmp,netpbm,nettle,ngrep,nmap,node,numpy,octave,oniguruma,opencv3,openexr,openjpeg,openjpeg21,openssl,orc,p7zip,pandoc,pango, pangomm,parallel,pcre,pdfgrep,perl,perlmagick,php56,php56-amqp,php56-imagick,pixman,pkg-config,platypus,plotutils,pngcheck,pngcrush,pngquant,poppler,popt,potrace,pstoedit,py2cairo,pygobject3, pyqt,pyqt5,python,python3,qhull,qrupdate,qscintilla2,qt,qt5,rabbitmq-c,readline,redis,rename,rocksdb,ruby,sane-backends,sdl,shared-mime-info,sip,smartmontools,snappy, sox,sqlite,sqliteman,suite-sparse,suite-sparse421,svg2png,swig,szip,tag,tbb,tesseract,tmux,transfig,tree,ufraw,unixodbc,utf8proc,veclibfort,vips,webkit2png,webp,wget,wireshark, x264,xmlstarlet,xvid,xz,youtube-dl,bar