Visual Studio2013下Magick++配置方法

声明:本文系作者原创,如需转载请保持文章完整并注明出处(http://blog.csdn.net/u010281174/article/details/52224829)。

ImageMagick是一个图片编辑的跨平台开源库,可以读写各种类型的图片(包括svg格式的矢量图)并对其进行处理。本文将介绍Win10平台下用源码编译ImageMagick库的流程,主要支持Visual Studio 2013的调用。

一、下载源码

首先前往官网下载源码。注意是下载源码,不是可执行文件。(http://imagemagick.org/script/install-source.php#windows)选择Install from Windows Source下的download。

二、配置configure.exe

 

下载后解压,找到\ImageMagick-7.0.2-9\VisualMagick\configure文件夹(注意,只有windows平台下的源码才包含VisualMagick文件夹,如果找不到这个文件夹可能是下载错了),如果该文件夹下没有configure.exe文件,则用VS打开configure.sln生成configure.exe文件。

三、用configure.exe生成.sln文件

 

打开configure.exe,

 

单击下一步。

 

来到配置页面,这里需要注意:

 

  1. 第一栏build type setup,根据需要选择动态链接库还是静态链接库;
  2. 第二栏里面,如果是生成x64平台下的库文件,就勾选Build 64-bit distribution;选择正确的VS版本(Visual Studio Version),我是用的是VS2013,因此选择了2013;建议勾选Include all demo, test, appl, and contrib director。

 

然后完成,生成项目。

四、编译项目。

 

接下来前往父目录(\ImageMagick-7.0.2-9\VisualMagick)打开Visual*.sln,编译生成项目。

生成的过程中可能会因为编码问题遇到几个error:

 

  1. 项目CORE_pango,提示常量中包含换行符,找到错误的位置,在字符串最后添加一个空格即可;这是因为非ASCII码后面直接跟的字符被忽略掉了。
  2. afstyles.h文件中line100有个错误,这个错误同样是因为编码问题,但是这个问题的根源来自于afscript.h文件,其中很多/**/注释中间是非ASCII字符,将这些注释后面(*/前面)添加一个空格即可解决问题。这个bug隐藏的很深,思路来源自http://savannah.nongnu.org/bugs/?48126,感谢这位作者!

 

弄完这几个bug就差不多可以编译成功了。

注意:最好将debug和release都编译一遍,这两者生成的.lib和.dll文件分别为:*DB*./*RL*.

五、使用

 

编译好之后,将\VisualMagick\bin目录下的.dll动态链接库拷贝到C:\Windows\System32目录下,新建一个Visual Studio项目,添加

包含目录:

 

[plain] view plain copy

 

  1. $(ImageMagickPath)\ImageMagick  
  2. $(ImageMagickPath)\ImageMagick\Magick++\lib  

 

库目录:

 

[plain] view plain copy

 

  1. $(ImageMagickPath)\VisualMagick\lib  

 


debug下添加附加依赖项:

 

[plain] view plain copy

 

  1. CORE_DB_Magick++_.lib  
  2. CORE_DB_MagickCore_.lib  
  3. CORE_DB_MagickWand_.lib  

 

release下添加附加依赖项:

 

[plain] view plain copy

 

  1. CORE_RL_Magick++_.lib  
  2. CORE_RL_MagickCore_.lib  
  3. CORE_RL_MagickWand_.lib  

 

添加一个cpp文件,用官网给的示例(http://imagemagick.org/script/magick++.php):

[cpp] view plain copy

 

  1. #include <Magick++.h>   
  2. #include <iostream>   
  3.   
  4. using namespace std;   
  5. using namespace Magick;   
  6.   
  7. int main(int argc,char **argv)   
  8. {   
  9.   InitializeMagick(*argv);  
  10.   
  11.   // Construct the image object. Seperating image construction from the   
  12.   // the read operation ensures that a failure to read the image file   
  13.   // doesn't render the image object useless.   
  14.   Image image;  
  15.   try {   
  16.     // Read a file into image object   
  17.     image.read( "logo:" );  
  18.   
  19.     // Crop the image to specified size (width, height, xOffset, yOffset)  
  20.     image.crop( Geometry(100,100, 100, 100) );  
  21.   
  22.     // Write the image to a file   
  23.     image.write( "logo.png" );   
  24.   }   
  25.   catch( Exception &error_ )   
  26.     {   
  27.       cout << "Caught exception: " << error_.what() << endl;   
  28.       return 1;   
  29.     }   
  30.   return 0;   
  31. }  

 

如果这个项目运行后提示

[plain] view plain copy

 

  1. UnableToOpenConfigureFile `magic.xml'  

的话,可以把\bin\magic.xml复制到exe文件所在的文件夹。这个问题貌似是源码的一个bug,加载*.xml的时候路径错误。尚未找到其他解决方案。如果有更好的办法欢迎留言。

 

到此,就把ImageMagick配置好了。

 

参考:

 

http://blog.csdn.net/fksec/article/details/36008343

http://qingqingzjin.blog.163.com/blog/static/1881032672013917103716344/

 

0
时间: 2024-11-05 06:25:42

Visual Studio2013下Magick++配置方法的相关文章

Symfony2在Nginx下的配置方法图文教程_php实例

本文详细讲述了Symfony2在Nginx下的配置方法.分享给大家供大家参考,具体如下: 网上有很多关于symfony2在nginx下的配置文章,如果是小白,按照网上贴出来的配置文件配置,却怎么也不成功,我经过多次摸索,写下心得: 1. 首先开启Nginx的pathinfo 至于什么是pathinfo,可以参考文章<nginx下支持PATH_INFO的方法实例详解>,自行脑补.很多人按照教程配置的时候,会报500的错误,查报错日志也查不出来,八成就是没有开启pathinfo. 如果你的主机上安

visual studio 2012安装配置方法图文教程 附opencv配置教程_实用技巧

在同学的帮助下,终于成功配置了vs+opencv,将详细过程记录在此,方便以后查阅 一.安装vs2012 下载vs2012,官方下载地址 1.双击安装文件,设置安装路径   2.选择需要的安装包 3.安装进行中   4.终于安装完成 5.点击启动 提示输入产品秘钥   YKCW6-BPFPF-BT8C9-7DCTH-QXGWC 激活成功 6.出现其它配置页面   这里选择C++为默认开发环境 7.启动   8.注意,有时可能出现兼容性问题,需要下载更新包   点击安装即可. 二.安装opencv

CentOS下SSH配置方法详解

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. 传统的网络服务程序,如FTP.POP和Telnet其本质上都是不安全的:因为它们在网络上用明文传送数据.用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击.就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器. 而 SSH 是目前

windows环境下memcache配置方法 详细篇_win服务器

将memcache服务器安装包解压到C:\memcached文件夹后,使用cmd命令窗口安装. 1>开始>运行:CMD(确定) 2>cd C:\memcached(回车) 3>memcached -d install(回车 这步执行安装) 4>memcached -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用11211端口) 此时memcache服务器已经可以正常使用了. 在服务端运行: # ./memcached -d -m 2048

java环境变量配置方法

windows xp下配置JDK环境变量: 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:javajdk1.5.0_08; 2.安装完成后,右击"我的电脑",点击"属性"; 3.选择"高级"选项卡,点击"环境变量"; 4.在"系统变量"中,设置3项属性,JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击&

windows下apache+mysql+php+phpmyadmin的配置方法

apache服务器没什么可说的地方,尽量去官网下载个最新的. 有一个地方需要注意:php教程是以模块的形式加载到apache这个容器里面的,就是你在配置apache加载php模块的时候,注意那个路径的问题.具体配置语句 loadmodule php5_module d:/php/php5apache2.dll 是指以module方式加载php phpinidir "d:/php" 是指明php的配置文件php.ini的位置 这个路径中尽量不要出现空格,比如我的路径是 loadmodul

linux服务器下LNMP安装与配置方法

现在很多朋友都选择了linux服务器下配置LNMP(linux+nginx+mysql+php),这里分享下LNMP安装与配置方法,需要的朋友可以参考下   Nginx与apache.lighttp性能综合对比,如下图: 注意:关闭rpm默认安装的apache和mysql 1.准备php函数的rpm包 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-de

vpn 741-请问下 win2003的l2tp VPS配置方法,找了很多教程都不行

问题描述 请问下 win2003的l2tp VPS配置方法,找了很多教程都不行 服务器配置好 VPS后 可以使用PPTP的方式连接 但是使用L2TP的方式就连接不上 出现错误 741 本地计算机不支持所要求的数据加密类型 试过证书的方式和 预共享密匙 都不行啊 都出现这个错误 求教 要是能视频教程就最好了. 解决方案 参考:http://www.docin.com/p-716267055.htmlhttp://wenku.baidu.com/link?url=49pHvW5lkrFmjOxKhD

link环境下制作的一款《网盘软件》, &amp;amp;quot;云服务器&amp;amp;quot;采用的数据库配置方法是什么?

问题描述 link环境下制作的一款<网盘软件>, "云服务器"采用的数据库配置方法是什么? link环境下制作的一款<网盘软件>, ""云服务器""采用的数据库配置方法是什么? 解决方案 一个是服务器本身提供了配置的功能,这个要咨询客服,一个是通过远程桌面安装.