第一次写博客,不知道咋开头,还是开门见山吧。
这个教程不仅仅适应于在cygwin开发环境下使用,在linux系统,unix等系统下也可以。主要是自己遇到问题了,网上又很难找到相关解答,所以把自己的经验列出来,大家交流一下。
如何在windows下安装cygwin以及将cygwin作为开发环境等等我就不在此赘述了,度娘上面好多好多,大家随便搜搜就能找到答案了,不过建议大家把一些基本的工具装上,在下面的操作中会方便很多,这个在安装cygwin的时候就会有相关介绍的,我也不多说了。好了,接下来进入正题。
ImageMagick是个很不错的做图像处理的东东,它为用户提供工具集合,让用户可以通过命令行的形式处理图片,同时它也支持多种开发语言,嵌入到用户的代码中处理相关程序。
一、基础环境安装
在安装ImageMagick之前,你得保证你的cygwin中安装了Jpeg、libPng、FreeType库,否则imageMagick无法读取jpeg和png图片,字体文件也读不了,下面会给出下载链接,根据我当时使用的最新版本,列出来:
freetype-2.5.5.tar.gz:http://fossies.org/linux/misc/freetype-2.5.5.tar.gz/
zlib-1.2.8.tar.gz :http://fossies.org/linux/misc/zlib-1.2.8.tar.gz/
libpng-1.7.0beta48.tar.gz:http://fossies.org/linux/misc/libpng-1.7.0beta48.tar.gz/jpegsrc.v9a.tar.gz:http://fossies.org/linux/misc/jpegsrc.v9a.tar.gz/
为了节省篇幅,具体的安装过程我就不多说了,自行百度哦,一定会找到令您满意的答案。
二、ImageMagick安装
ImageMagick的下载地址可以在http://www.imagemagick.org/script/install-source.php#unix这里找到,或者使用楼主提供的直通车ImageMagick.tar.gz点击下载哦。
下载完成后,把该压缩包放在某位置,自行决定,比如我把文件放在D盘,接下来给大家走个流程,ps:我用的版本是6.9.0-5
$ cd /cygdrive/d等一会,就安装完了,下面大家可以在/'usr/local/include下可以看到ImageMagick-6这个文件夹,然后里面是好多头文件,同时在/usr/ocal/lib、/usr/local/bin、/usr/local/share下也能见到ImageMagick的影子,这时在cygwin中输入
$ tar xzvf ImageMagick.tar.gz
$ cd ImageMagick-6.9.0-5
$ ./configure
$ make && make install
$ convert --version如果看到ImageMagick的相关安装信息,就说明您已安装成功!小小的祝贺一下!!
三、小试牛刀
接下来是最终的一步,也是很重要的一步,主要是费了好大的功夫才搞定利用ImageMagick进行代码实现。嘿嘿,下面给大家抛个例程,这个例子很简单,就是从一幅图片上截取一小块正方形,然后保存下来
#include <Magick++.h>接下来保存文件,编译一下,但是这个编译的命令与传统的不大一样,下面再详细说一下。比如保存的文件名为demo.cpp,然后cd到该代码文件所在的文件夹后,就要使用
#include <iostream>
using namespace std;
using namespace Magick;
int main(int argc,char **argv)
{
InitializeMagick(*argv);
// Construct the image object. Seperating image construction from the
// the read operation ensures that a failure to read the image file
// doesn't render the image object useless.
Image image;
try {
// Read a file into image object
image.read( "girl.gif" );
// Crop the image to specified size (width, height, xOffset, yOffset)
image.crop( Geometry(100,100, 100, 100) );
// Write the image to a file
image.write( "x.gif" );
}
catch( Exception &error_ )
{
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
return 0;
}
c++ -o demo demo.cpp `Magick++-config --cppflags --cxxflags --ldflags --libs`
这句话,就可以顺利搞定啦,然后大家尽情的去耍一把ImageMagick吧。
最后再多几句闲话,大家可能会感到奇怪,一般在linux下面的编译工具不都是gcc啦,g++啦,怎么会有这种编译方式呢?下面我把官网上的某段话摘录下来给大家看一下:
A helper script named Magick++-config is installed under Unix which assists with recalling compilation options required to compile and link programs which use Magick++. For example, the following command will compile and link the source file demo.cpp to produce the executable demo (notice that quotes are backward quotes):这段话大概意思就是说,在Unix系统下安装了一个Magick++-config辅助脚本文件,辅助用户编译使用Magick++开发的程序。
大家可以在 http://www.imagemagick.org/script/magick++.php看到更详细的说法,不过还是建议用户直接在命令行中输入
$ Magick++-config
更直观,好咯,基本上到这里就结束了,欢迎大家讨论交流!
欢迎转载,请标明原地址:http://blog.csdn.net/s2392735818/article/details/43765015,谢谢