1. 程式人生 > 其它 >Winform儲存控制元件到圖片

Winform儲存控制元件到圖片

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 void
SaveScreenToPng(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); } }