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,文檔已經資料還是比較豐富的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM