在Visual Studio下建立ImageMagick开发环境

ImageMagick 是个不错的东东,很有名,这里就不介绍了,今天在网上四处找开发者资料,可惜的是网上这方面的资料少的可怜,可以说就没有,后来终于找到一篇,原文在http://hi.baidu.com/soulmachine/blog/item/b8b1c416a57b951c962b435f.html/cmtid/3c5fc03f317382cc7c1e71a9,这里我根据他的文章外加我的实践自己补充了一点。Window XP SP3 + VC2010 + ImageMagick6.6.7-Q16 。

一、下载

http://www.imagemagick.org/script/download.php  打开网页后选个FTP/HTTP下载点,直接下载就可以了。我下的是:ImageMagick-6.6.7-2-Q16-windows-dll 版

二、安装

 

在安装过程中会出现该画面:

勾选前四项(第四项为开发者提供支持)。

三、DIY

 

安装完后到ImageMagick-6.3.7-Q16\Magick++_Demo下打开Magick++_Demo.dsw文件,如果你用的是VC6以上的版本,会提示你转化格式,选择"Yes to All"。然后VS会自动转化并打开项目文件,

右击button工程 —> 编译,很快就成功了,到ImageMagick-6.3.7-Q16\Magick++_Demo目录下会多出一个button.exe文件,我们双击运行它,一会就会在当前目录下生成一个button_out.miff文件,双击button_out.miff文件,看看效果

        就这么几步,我们已经编译运行成功了第一个例子,但是这个例子是人家做好的,接下来我们来做一个自己的例子,新建一个Console Application工程,代码不自己写了,还是直接copy button.cpp那个例子的吧,记得粘贴后还得在代码最前加上一句#include "stdafx.h"。

       打开“Toos->Options”,在弹出的对话框中展开“Projects and Solutions”,选择"VC++ Directories",

这里我要说明的一点是,我在Window下装的是VC++2010 专业版,但是"VC++ Directories"项打开以后是空白的,如图:

可能是我编译器版本的问题吧,对于这个情况我们在文章最后再说。

选择"Inculde files",点击按钮添加一行,如下所示:

点击右边的浏览按钮,添加ImageMagic提供的include 目录,我的是C:\Program Files\ImageMagick-6.3.7-Q16\include,添加完后如图:

不慌,还需要添加lib,选择Library files,

同样,添加lib路径,例如我的是:C:\Program Files\ImageMagick-6.3.7-Q16\lib。

接下来要设置工程了,选择“Project”菜单最下的“XXX Properties”,选择“Configuration Properties->Linker->Input”,在右边选择“Additional Dependencies”,点击浏览按钮,把自带的button例子的对应的设置复制过来,

这个步骤的意义主要是告诉连接器要链接CORE_RL_magick_.lib CORE_RL_Magick++_.lib两个lib文件,因此其实只要在粘贴两个即可,其他的都是多余的。

      接下来就可以build了。(运行时dll的路径不用自己添加,因为安装时会自动把C:\Program Files\ImageMagick-6.3.7-Q16添加到path中,在DOS命令下输入path就可以看到。这个目录下有很多dll,是程序运行时需要的dll。)

      在实践过程中,在Debug模式下,顺利编译并生成了exe文件,但是运行的时候出错:

后来我又用Release模式编译了下,Release模式下一切顺利,没有任何问题!

       目前依然有个严重的问题,就是ImageMagick-6.3.7-Q16\Magick++_Demo下的zoom那个例子虽然编译通过,但是运行会崩溃,通过调试发现只要是读文件,都会失败,在VC6和VS2008下都是如此,郁闷。

   

关于"VC++ Directories"目录项为空:

    对于这个情况,我也不是十分了解,网上也有很多朋友和我的情况是一样的,临时的解决方案就是单独为每一个项目设置文件包含和库包含路径,我们在项目项右击—>属性,然后在这里按上面的步骤编辑即可,但是这样比较麻烦的,每个项目都要DIY一次,等我再研究研究....


在Windows下我经常使用的是DEV-CPP,不过在编译过程中会出现莫名错误,在网上找了半天也没能解决,于是转到了VC2010下,肯能是由于DEV-CPP有点out了吧...

posted on 2011-01-26 17:21  hicjiajia  阅读(4024)  评论(0编辑  收藏  举报