在 Sierra(测试版)上使用 ImageMagick 时出现“找不到图像”
Posted
技术标签:
【中文标题】在 Sierra(测试版)上使用 ImageMagick 时出现“找不到图像”【英文标题】:"Image not found" when using ImageMagick on Sierra (beta) 【发布时间】:2017-01-06 07:25:55 【问题描述】:我正在尝试在 ios 应用的 appIcon 上添加水印。为此,我正在关注 [Ray's][1] 的博客,并使用 [here][2] 的二进制版本安装了 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
即使图像在那里,错误也是“找不到图像”。任何想法社区? [1]:https://www.raywenderlich.com/1716-how-to-change-your-app-icon-at-build-time [2]:https://www.imagemagick.org/script/download.php#macosx
【问题讨论】:
看起来DYLD_LIBRARY_PATH
需要定义。
在我的系统上,我有 DYLD_LIBRARY_PATH,但我仍然收到错误。
【参考方案1】:
我遇到了同样的问题。对我有用的是从 $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 图像。
【讨论】:
【参考方案2】:更新
我检查了您从中获取包裹的页面,看起来我的假设是正确的 - 您缺少路径变量 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 的 path 中出现权限错误。如果您以 root 身份安装(或以 root 身份运行安装),则可能会发生这种情况,使用更安全的权限创建库目录(例如 750 而不是 755),然后您以不同和/或权限较低的用户身份运行应用程序/组。
如果您通过 Homebrew 安装 ImageMagick,请检查 HB 的配置路径。您的症状让我非常想起如果安装脚本使用--prefix=
而不是--prefix=/usr/local
运行会发生什么。
【讨论】:
【参考方案3】:恕我直言,在 OS X 上安装、配置、卸载 ImageMagick 和许多其他软件包的最简单方法是使用 homebrew。
步骤 1
转到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
疑难解答
如果您对 homebrew 有任何问题,只需询问好医生出了什么问题,您就会得到一份关于所有问题的报告:
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 、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 -主题,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 错误, 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,并行,pcre,pdfgrep,perl,perlmagick,php56,php56-amqp,php56-imagick,pixman,pkg-config,鸭嘴兽,plotutils,pngcheck,pngcrush,pngquant,poppler,popt,potrace,pstoedit,py2cairo,pygobject3, pyqt,pyqt5,python,python3,qhull,qrupdate,qscintilla2,qt,qt5,rabbitmq-c,readline,redis,重命名,rocksdb,ruby,sane-backends,sdl,shared-mime-info,sip,smartmontools,snappy, sox,sqlite,sqliteman,套件稀疏,套件稀疏421,svg2png,swig,szip,标签,tbb,tesseract,tmux,transfig,树,ufraw,unixodbc,utf8proc,veclibfort,vips,webkit2png,webp,wget,wireshark, x264, xmlstarlet, xvid, xz, youtube-dl, 酒吧
【讨论】:
以上是关于在 Sierra(测试版)上使用 ImageMagick 时出现“找不到图像”的主要内容,如果未能解决你的问题,请参考以下文章
sh 将MAMP 4升级到Mysql 5.7.18(在Sierra测试中)
markdown 使用Homebrew在Sierra上安装MySQL
Jenkins 无法在 macOS 10.12 (Sierra) 上启动