ImageMagick学习中

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


你可能感兴趣的:(ImageMagick学习中)