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

  • 相关阅读:
    行转列,列转行
    聚合函数:sum,count,max,avg
    row_number() over partition by 分组聚合
    mysql优化
    hive中not in优化
    DBCP数据库连接池的简单使用
    Eclipse或MyEclipse中给第三方jar包添加源码步骤
    Java中CountDownLatch类的使用
    PLSQL Developer安装、配置、连接oracle数据库
    oracle11g卸载(win10)
  • 原文地址:https://www.cnblogs.com/darkspr/p/13432845.html
Copyright © 2011-2022 走看看