CanvasImageSaveAsync Method (ICanvasImage, Rect, Single, ICanvasResourceCreator, IRandomAccessStream, CanvasBitmapFileFormat) |
Namespace: Microsoft.Graphics.Canvas
public static IAsyncAction SaveAsync( ICanvasImage image, Rect sourceRectangle, float dpi, ICanvasResourceCreator resourceCreator, IRandomAccessStream stream, CanvasBitmapFileFormat fileFormat )
This method saves the given image. The image can be any size, memory or output file format permitting, and is not restricted by the value of CanvasDevice.MaximumBitmapSizeInPixels.
The ICanvasImage may need to be drawn to a render target before it can be saved - for example, it may be an effect or a command list. SaveAsync will take care of this automatically and create whatever temporary render targets are required.
To save an image using a high dynamic range (HDR) pixel format, use SaveAsync(ICanvasImage, Rect, Single, ICanvasResourceCreator, IRandomAccessStream, CanvasBitmapFileFormat, Single, CanvasBufferPrecision) with JpegXR format and a suitable CanvasBufferPrecision.
async void SaveImage(ICanvasImage image, Rect sourceRectangle) { var picker = new FileSavePicker(); picker.FileTypeChoices.Add("Images", new List<string>() { ".jpg" }); var file = await picker.PickSaveFileAsync(); if (file == null) return; using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite)) { CanvasImage.SaveAsync(image, sourceRectangle, 96, this.canvas, stream, CanvasBitmapFileFormat.Jpeg); } }