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; }