ImageMagick资料很少,更没有中文文档,我就看的是http://www.imagemagick.org/Magick++/Documentation.html 英文文档
我对Image中的每个函数都做了尝试,赶快记录一下,随着以后的了解,会实时更新的
// magick_1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <Magick++.h>
#include <iostream>
#include <string>
//#pragma comment(lib,"ws2_32.lib")
using namespace std;
using namespace Magick;
#include <Windows.h>
#include <wand/magick_wand.h>
int main(int argc,char **argv)
{
InitializeMagick(*argv);
Image image( "test.jpg" );
Blob blob;
image.magick("JPEG");
Image image1( Geometry(500,500), Color("white") );
image1.strokeColor("red"); // Outline color
image1.fillColor("green"); // Fill color
image1.strokeWidth(5);
//以(x,y)为圆心画圆
image1.draw( DrawableCircle(100,100, 10,70) );
//以(x,y)为顶点画矩形
image1.draw( DrawableRectangle(0,100, 270,170) );
image1.write("draw.png");
image1.write("src.jpg");
image.write(&blob);
//Image image2;
//image2.read(blob);
//image2.write("blob.jpeg");
//image3.blur(1,1);
//image3.write("test_re.png");
//重新设置图片尺寸
//image.resize(Geometry(300,300));
//模糊化--blurChannel:取消模糊化
//image.blur(1,1);
//在图片外侧加上边框
//image.border(Geometry("10x20+0+0"));
//裁剪图片从(w,h)处开始裁剪
//image3.chop(Geometry("100x100+0+0"));
//调整图片的颜色
//image.colorize(40,10,100,Color(0,0,0));
//拷贝制定大小、位置的图片 从(xoffset,yoffset)处拷贝(w,h)大小
//image.crop(Geometry("100x100+0+0"));
//image3.write("test_result3.png");
//搞不懂这个函数,貌似是图片的回滚
//image.cycleColormap(1);
//去除噪点
//image.despeckle();
//边缘化图片
//image.edge(0);
//浮雕效果
//image.emboss(2,2);
//图片加强效果(但是我没看到效果)
//image.enhance();
//色彩均衡
//image.equalize();
//Set all image pixels to the current background color
//image.erase();
//从(xoffset,yoffset)取w*h区域的大小图片 "red" -背景色
//image.extent(Geometry("100x100+0+0"),"red");
//沿x轴旋转180度
//image.flip();
//填充颜色(还没弄明白)
//image.floodFillColor(Geometry("10x10+20+20"),"red");
//以y轴旋转180°
//image.flop();
//加边框
//image.frame(50,16,11,5);
//参数都不明白
//image.fx("",ChannelType(1));
//调色
//image.gamma(2);
//传说中的高斯模糊
//image.gaussianBlur(2,1);
//apply a Hald color lookup table to the image 不明白
//image.haldClut(image);
//凸镜的奇幻效果
//image.implode(0.1);
//只知道是傅里叶变化,运行出错,很无语
//image.inverseFourierTransform(image,false);
//继续搞不懂
//image.level(20,20.1,1);
//放大图片 2
//image.magnify();
//缩小图片 1/2
//image.minify();
//image.write("min-1.jpg");
//image.minify();
//
//image.map(image,true);
//中值滤波
//image.medianFilter(0.1);
//
//image.modifyImage();
//图像色彩取反(白色变成黑色等)
//image.negate();
//使标准化(效果是变亮了)
//image.normalize();
//使图片看起来像是油画
//image.oilPaint(4);
//量化图片
//image.quantize();
//有点3D效果
//image.raise(Geometry("100x0+100+0"),true);
//图片的上下、左右区域的位置互换,以column,row为轴
//image.roll(0,200);
//旋转图片,按照给定的度数
//image.rotate(-90);
//可以按照给定的大小进行放大缩小图片
//image.sample(Geometry("1000x1000"));
//类似sample 可以放大缩小
//image.scale(Geometry("1000x1000"));
//使阴影化
//image.shade();
//重置图片的尺寸
//image.resize(Geometry("2000x1500"));
//按照正弦波扭曲图片
//image.wave();
//打水印,终于找到了,没设置成功
//Image image_src("shuiyin.jpg");
//Image image_dst("src.jpg");
//image_dst.stegano(image_src);
//image_dst.write("dst.jpg");
//按照传入的度数 扭曲图片
//image.swirl(120);
image.texture(Image("src.jpg"));
//MagickCompositeImage();
image.write("test_result.jpg");
image.display();
//image.composite(image,100,100);
//image.comment("%fwhat.png");
//printf("%s\n",(char *)blob.data);
return 0;
}