Winform儲存控制元件到圖片
阿新 • • 發佈:2022-12-03
Winform將控制元件儲存為圖片比較簡單,因為Control類本身就有DrawToBitmap方法,可以將控制元件本身輸出到圖片中。
此外,還可以通過Graphics類的CopyFromScreen方法將螢幕的指定區域拷貝到指定點陣圖中,只是這種方式對視窗類比較適用,而且會保留視窗的陰影部分,因此對於擷取控制元件圖片不是很完美。
1、DrawToBitmap
/// <summary> /// 儲存控制元件到圖片 /// </summary> /// <param name="control">控制元件物件</param> /// <param name="fileName">檔名</param> public static void SaveControlToPng(Control control, string fileName) { var width = control.Size.Width; var height = control.Size.Height; using (var bmp = new Bitmap(width, height)) { control.DrawToBitmap(bmp, new Rectangle(0, 0, width, height)); bmp.Save(fileName, ImageFormat.Png); } }
2、CopyFromScreen
/// <summary> /// 儲存螢幕區域到圖片 /// </summary> /// <param name="x">螢幕x座標</param> /// <param name="y">螢幕y座標</param> /// <param name="width">寬度</param> /// <param name="height">高度</param> /// <param name="fileName">檔名</param> public static voidSaveScreenToPng(int x, int y, int width, int height, string fileName) { using (var bmp = new Bitmap(width, height)) using (var graphics = Graphics.FromImage(bmp)) { graphics.CompositingQuality = CompositingQuality.HighQuality; //質量設為最高 graphics.CopyFromScreen(x, y, 0, 0, new Size(width, height)); //儲存整個螢幕區域 bmp.Save(fileName, ImageFormat.Png); } }