声明:本文系作者原创,如需转载请保持文章完整并注明出处(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项目,添加

包含目录:

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

库目录:

  1. $(ImageMagickPath)\VisualMagick\lib

debug下添加附加依赖项:

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

release下添加附加依赖项:

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

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

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

如果这个项目运行后提示

  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

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

  1. Linux环境下Swap配置方法

    Linux环境下Swap配置方法 场景: 今天下午安装一个CentOS6.5操作系统,忘记配置swap分区.看看如何安装系统之后,增加和删除swap分区.方法如下:1.内存占用情况[root@josh ...

  2. Faster-RCNN-TensorFlow-Python3.5 在Ubuntu16.04下的配置方法

    目录 Faster-RCNN-TensorFlow-Python3.5 在Ubuntu16.04下的配置方法 安装过程 1. 深度学习环境Tensorflow的安装 2. 安装python包 3.   ...

  3. Java JDK在Mac下的配置方法

    Java JDK在Mac.Windows下的配置方法 Mac 第一步:下载JDK 官网下载地址 第二步:安装JDK 安装步骤很简单,一直点击下一步即可. 第三步:配置环境变量 打开terminal(终 ...

  4. Opencv2.4.13 与Visual Studio2013 环境搭建配置

        opencv这个工具来进行图像处理.大致是使用C++语言编写程序实现识别算法的实现,所以首先就要进行opencv与VS环境的配置. Shaine属于那种半路出家之人都算不上的那种,本科期间三四 ...

  5. Opencv2.4.13与Visual Studio2013环境搭建配置教程

    转载:http://www.jb51.net/article/108943.htm 一.安装包的下载与安装 Opencv可免费到官网上去下载,opencv是国外软件,在下载是由于受资源的限制,可能会出 ...

  6. windows环境下memcache配置方法 详细篇

    将memcache服务器安装包解压到C:\memcached文件夹后,使用cmd命令窗口安装. 1>开始>运行:CMD(确定) 2>cd C:\memcached(回车) 3> ...

  7. windows7 下伪静态配置方法

    今天终于算是彻底知道windows7下伪静态的IIS配置了.尼玛真坑爹,竟然64位的和32位的配置竟然不一样... 网上找的比较详细的文章地址: http://jingyan.baidu.com/ar ...

  8. centos下网络配置方法(网关、dns、ip地址配置)

    本文介绍了centos网络配置的方法,centos网络配置主要包括dns.网关.IP地址: 1.IP地址配置: /etc/sysconfig/network-scripts/ifcfg-eth0 2. ...

  9. VS2010环境下Winpcap配置方法 (转)

    VS2010 配置Winpcap 新建一个项目,GetDevs.cpp.用来测试.测试代码最后有给出. View->Property Manager Debug|Win32 -> Mirc ...

随机推荐

  1. Web启动,停止Windows服务

    When you grow stronger,the world become more dangerous.当你变得越强大,这个世界反而会变得越危险. ServiceModel.cs代码: publ ...

  2. Memcached 与 Redis 的关键性能指标比较

    性能对比: Redis 只使用单核,而 Memcached 可以使用多核,所以平均每一个核上 Redis在存储小数据时比 Memcached 性 能更高. 而在 100k 以上的数据中,Memcach ...

  3. Visual Studio蛋疼问题解决(2)

    Astyle配置 1.下载并安装Astyle(AstyleExtension.vsix),重新启动VS: 2.工具->选项,从左侧列表找到AStyleFormatter,在右边编辑参数,参考设置 ...

  4. Java单例模式 多种实现方式

    一:通过静态私有成员实现单例模式 (1):私有化构造函数 (2):new静态实例属性对象,加锁. 单例类: package SinglePag; /* * 构造函数私有化,结合锁+静态的概念 实现单例 ...

  5. CUDA与OpenCL架构

    CUDA与OpenCL架构 目录 CUDA与OpenCL架构 目录 1 GPU的体系结构 1.1 GPU简介 1.2 GPU与CPU的差异 2 CUDA架构 2.1 硬件架构 2.1.1 GPU困境 ...

  6. bzoj 4372: 烁烁的游戏 动态点分治_树链剖分_线段树

    [Submit][Status][Discuss] Description 背景:烁烁很喜欢爬树,这吓坏了树上的皮皮鼠. 题意: 给定一颗n个节点的树,边权均为1,初始树上没有皮皮鼠. 烁烁他每次会跳 ...

  7. sublime Text3的使用

    sublime text百度百科: Sublime Text 是一个代码编辑器,也是HTML和散文先进的文本编辑器.Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python ...

  8. 修改默认input(file)的样式

    以上是默认的 <input type="file" > 但是丑爆了啊同志们~~长久以来都是调用大神的代码,今天我也小试牛刀,做出了如下效果: 这样还是能接受的样子啦~ ...

  9. BZOJ 2959 长跑 (LCT+并查集)

    题面:BZOJ传送门 当成有向边做的发现过不去样例,改成无向边就忘了原来的思路.. 因为成环的点一定都能取到,我们把它们压成一个新点,权值为环上所有点的权值和 这样保证了图是一颗森林 每次询问转化为, ...

  10. [置顶] 大数据架构hadoop

    摘要:Admaster数据挖掘总监 随着互联网.移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海量数据的时代,数据调查公司IDC预计2011年的数据总量将达到1.8万亿GB,对这些海 ...