关于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;
            }
        }

 

posted on 2017-01-11 09:28  源坊  阅读(84)  评论(0)    收藏  举报

导航