zoukankan      html  css  js  c++  java
  • 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:01.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:ac.jpg");
    bac.Composite(image, 231, 219);
    
    //图片保存
    image.Write(@"D:02.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,文档已经资料还是比较丰富的

  • 相关阅读:
    thinkphp3.2v
    ng-select 下拉的两种方式
    angular的时间指令 以及防止闪烁问题
    angularjs中的几种工具方法
    运用正则+replace+substring将一段英语的字母大写 angurlar运用自定义指令filter完成首字母大写
    angularjs bind与model配合双向绑定 表达式方法输出
    ajax跨域问题
    团队作业一
    校外实习报告(四)
    校外实习报告(三)
  • 原文地址:https://www.cnblogs.com/darkspr/p/13432845.html
Copyright © 2011-2022 走看看