关于WIN8图形导出
关于WIN8的图形导出,这里做一下记载,也帮助一些那些还被困扰的朋友吗
关于图形的导出,这里我使用了 RenderTargetBitmap ,用于图形的绘制,具体的可以见MSDN。
public async static Task<RenderTargetBitmap> ExportImageForElement(FrameworkElement element) { RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(); await renderTargetBitmap.RenderAsync(element); return renderTargetBitmap; }
element:需要绘制的控件对象,可以是GRID
关于导出的地址选项
public async static Task<bool> SaveImage(RenderTargetBitmap source,string name) { IBuffer pixelBuffer = await source.GetPixelsAsync(); FileSavePicker saveFile = new FileSavePicker(); saveFile.SuggestedStartLocation = PickerLocationId.PicturesLibrary; saveFile.SuggestedFileName = name; saveFile.FileTypeChoices.Add("Plain Image", new List<string>() { ".png", ".jpg",".bmp" }); StorageFile file = await saveFile.PickSaveFileAsync(); try { using (var fileStream = await file.OpenAsync(FileAccessMode.ReadWrite)) { var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, fileStream); encoder.SetPixelData( BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)source.PixelWidth, (uint)source.PixelHeight, DisplayInformation.GetForCurrentView().LogicalDpi, DisplayInformation.GetForCurrentView().LogicalDpi, pixelBuffer.ToArray()); await encoder.FlushAsync(); } return true; } catch (Exception) { return false; } }
浙公网安备 33010602011771号