c#操作magick,magick.net
之前用python操作magick,写过几个帖子,当时操作得还行,最近需要做一些工作,发现python下非常难操作,当然和我水平有关
pythonmagick其实就是c++库得移植
本次操作涉及到了dpi,之前没操作过,查询了资料
是用density来操作,再python下各种报错,大致意思就是参数格式不对,要什么magick::point格式
代码和报错如下,网上找了一圈,也没找到(如果有大神能指点下这个参数怎么写,那是非常感谢)
只能作罢,转向c#看看
之前就知道magick有c#得封装,叫magick.net
新建了一个项目,测试下来效果非常不错,比python下好用多了
//导入库 using ImageMagick; //读取图片 var image = new MagickImage(@"D:\001.jpg"); //设置dpi image.Density = new Density(300.00, 300.00); //修改图片尺寸(锁定比例,尺寸不一定是设置得尺寸) image.Resize(new MagickGeometry(310, 430)); //修改图片尺寸(不锁定比例,图片会拉伸或压扁) image.Resize(new MagickGeometry("310x430!")); //设置颜色空间为cmyk(这个python下面得费一番功夫) image.ColorSpace = ColorSpace.CMYK; //图片合并(bac为背景,image放置再x231,y219处) var bac = new MagickImage(@"D:\bac.jpg"); bac.Composite(image, 231, 219); //图片保存 image.Write(@"D:\002.jpg"); //清理图片对象 image.Dispose();
//书写文字(注意书写文字要指定字体文件,这样才能书写中文,否则中文一律不显示) new Drawables() // Draw text on the image .FontPointSize(50)//字体大小 .Font(@"D:\msyh.ttc")//字体文件 .FillColor(new MagickColor("#519669"))//字体颜色 .TextKerning(10.00)//间距 .Text(312, 710,"你好")/文字位置,内容 .Draw(bac);
可以看出操作还是很简单得,上面得文字书写暗坑,如果font不设置文件,那就不能写中文,这里要多加小心
这样基本就完成了
c#用的不是很多,不过写起来倒是不难,稍微花了点时间,就能上手,相比pythonmagick,文档已经资料还是比较丰富的