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