本文为转载,原博客地址:https://blog.csdn.net/kmblack1/article/details/79278724
另一篇参考博客:https://blog.csdn.net/yasi_xi/article/details/33793913
错误解决相关博客:https://blog.csdn.net/wgx571859177/article/details/79837916
主页
windows
下载源码
7版本和6版本差距比较大,导致以前的代码无法使用,因此本文是基于6版本编译的,7版本也是同样的方法.
首先解压下载的压缩包后,打开解压目录”VisualMagick\configure”,找到并打开”configure.sln”编译配置工具.编译选项设置为Release,其它无需设置,然后编译配置工具.
编译完成后,在”VisualMagick\configure”中双击运行configure.exe.
直接点击下一步.
在Target Setup中设置您需要的类型.
这里我选择的是”Static Multi-thread runtimes(静态库).”
然后勾选”Build options(编译选项)”,一般默认即可,只需要选择”Visual Studio Version”为你机器上安装的版本,这里我选择2015.
设置完成后点击下一步,使用默认设置即可.
继续点击下一步,然后点击完成待运行完成后,在”VisualMagick”目录多了个sln文件,sln文件名称根据你在第二步中设置有所不同,因为我选择的是”Static Multi-thread runtimes(静态库)”,所以工程文件为”VisualMagick\VisualDynamicMT.sln”
双击打开”VisualMagick\VisualDynamicMT.sln”,选择要编译的类型和平台,然后点击重新生成开始编译.
D:\library\ImageMagick-6.9.9-34\ImageMagick
D:\library\ImageMagick-6.9.9-34\ImageMagick\Magick++\lib
D:\library\ImageMagick-6.9.9-34\VisualMagick\lib
库文件Debug版本命名为“CORE_DB*”,Release版本命名为“CORE_RL*”
共27个
CORE_DB_bzlib_.lib
CORE_DB_cairo_.lib
CORE_DB_coders_.lib
CORE_DB_croco_.lib
CORE_DB_exr_.lib
CORE_DB_ffi_.lib
CORE_DB_filters_.lib
CORE_DB_flif_.lib
CORE_DB_glib_.lib
CORE_DB_jp2_.lib
CORE_DB_jpeg_.lib
CORE_DB_lcms_.lib
CORE_DB_libraw_.lib
CORE_DB_librsvg_.lib
CORE_DB_libxml_.lib
CORE_DB_lqr_.lib
CORE_DB_Magick++_.lib
CORE_DB_magick_.lib
CORE_DB_openjpeg_.lib
CORE_DB_pango_.lib
CORE_DB_pixman_.lib
CORE_DB_png_.lib
CORE_DB_tiff_.lib
CORE_DB_ttf_.lib
CORE_DB_wand_.lib
CORE_DB_webp_.lib
CORE_DB_zlib_.lib
共27个
CORE_RL_bzlib_.lib
CORE_RL_cairo_.lib
CORE_RL_coders_.lib
CORE_RL_croco_.lib
CORE_RL_exr_.lib
CORE_RL_ffi_.lib
CORE_RL_filters_.lib
CORE_RL_flif_.lib
CORE_RL_glib_.lib
CORE_RL_jp2_.lib
CORE_RL_jpeg_.lib
CORE_RL_lcms_.lib
CORE_RL_libraw_.lib
CORE_RL_librsvg_.lib
CORE_RL_libxml_.lib
CORE_RL_lqr_.lib
CORE_RL_Magick++_.lib
CORE_RL_magick_.lib
CORE_RL_openjpeg_.lib
CORE_RL_pango_.lib
CORE_RL_pixman_.lib
CORE_RL_png_.lib
CORE_RL_tiff_.lib
CORE_RL_ttf_.lib
CORE_RL_wand_.lib
CORE_RL_webp_.lib
CORE_RL_zlib_.lib
把CORE_DB*.dll复制到应用程序Debug目录.
把CORE_RL*.dll复制到应用程序Release目录.
依赖包请先尝试
sudo apt-get install libmagick++-dev
但是不要安装(选择n),把需要的依赖包复制下来,把其中名称中包含magick关键字的依赖包删除,得到以下结果:
sudo apt-get install bzip2-doc gir1.2-rsvg-2.0 libbz2-dev libcairo-script-interpreter2 libcairo2-dev libcdt5 libcgraph6 libdjvulibre-dev libexif-dev libexpat1-dev libfontconfig1-dev libfreetype6-dev libgdk-pixbuf2.0-dev libgraphviz-dev libgvc6 libgvc6-plugins-gtk libgvpr2 libice-dev libilmbase-dev libjasper-dev libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev liblcms2-dev liblqr-1-0-dev liblzma-dev libopenexr-dev libpathplan4 libpixman-1-dev libpng12-dev librsvg2-dev libsm-dev libtiff5-dev libtiffxx5 libwmf-dev libx11-dev libx11-doc libxau-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxdmcp-dev libxdot4 libxext-dev libxrender-dev libxt-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-render-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev libcairo2-doc libice-doc liblzma-doc librsvg2-doc libsm-doc libwmf-doc libxcb-doc libxext-doc libopenjp2-7-dev
tar -xf ImageMagick.tar.gz
cd ImageMagick-6.9.9-34
./configure --prefix=/usr/local/imagemagick
make
sudo make install
gcc编译时如有警告,需要定义下面的宏
-DMAGICKCORE_HDRI_ENABLE=0 -DMAGICKCORE_QUANTUM_DEPTH=16
/usr/include/ImageMagick-6/Magick++
在linux上引用a文件会编译会出现未定义的函数的错误,因此使用so文件
/usr/lib/x86_64-linux-gnu/libMagickCore-6.Q16.so
/usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so
/usr/lib/x86_64-linux-gnu/libMagick++-6.Q16.so
so文件需要将so加入到LD_LIBRARY_PATH环境变量中
设置ImageMagick环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/imagemagick/lib
sudo vim /etc/environment
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/imagemagick/lib
#在PATH=最后加上
/usr/local/imagemagick/bin
source /etc/environment
由于绘图时需要使用到字体,因此需要安装中文字体支持
sudo apt-get install fonts-wqy-zenhei fonts-wqy-microhei ttf-wqy-microhei ttf-wqy-zenhei xfonts-wqy
identify -list font
fc-list :lang=zh-cn
ImageMagick绘制文字默认使用的是UTF-8编码,当然你也可以在Magick::DrawableText第4个参数中指定,但是还是建议在绘制前将文字转换为UTF-8.