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