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,文档已经资料还是比较丰富的

 

posted @ 2020-08-04 13:55  darkspr  阅读(3342)  评论(1编辑  收藏  举报