1. 程式人生 > 其它 >.net平臺使用ImageMagick進行圖片讀取、縮放、壓縮 、儲存等

.net平臺使用ImageMagick進行圖片讀取、縮放、壓縮 、儲存等

  • 第三方類庫:Magick.NET-Q8-AnyCPU.dll、Magick.NET.Core.dll DLL下載
using ImageMagick;

{//指定路徑圖片縮圖顯示
	MagickImage img = new MagickImage(filePath);
	img.Scale(this.imageList1.ImageSize.Width, imageList1.ImageSize.Height);//按寬高取圖
	Stream st = new MemoryStream();
	img.Write(st);//輸出到記憶體
	Image img2 = new Bitmap(st); 
	imageList1.Images.Add(img2);
}

{//pictureBox1圖片讀到記憶體 → 通過MagickImage輸出到本地
	MemoryStream mstr = new MemoryStream(); //建立新的MemoryStream
	pictureBox1.Image.Save(mstr, ImageFormat.Jpeg);// 儲存物件到記憶體
	MagickImage image = new MagickImage(mstr.ToArray(), MagickFormat.Jpeg);
	var arr = txtImgSize.Text.Trim().Replace(",", " ").Replace(",", " ").Split(' ');
	image.Scale(int.Parse(arr[0]), int.Parse(arr[1]));//縮放
	MemoryStream mstr2 = new MemoryStream(); //建立新的MemoryStream
	image.Write(mstr2);
	image.Dispose();
}			
			  
{//無失真壓縮 
MagickImage image = new MagickImage(filePath);
    image.Quality = 100;//無失真壓縮  
    Percentage percentage = new Percentage(50);
    image.Resize(percentage);//調大小 按px值
    //image.Scale(width, height);//縮放 字不清楚較嚴重
    image.Write(FilePath);//輸出到磁碟
	image.Dispose();
}