Save Controls to albums
Private async void Saveimg_click (object sender, RoutedEventArgs e)
{
Storagefolder savedpics = knownfolders.savedpictures;
RenderTargetBitmap RenderTargetBitmap = new RenderTargetBitmap ();
Await Rendertargetbitmap.renderasync (gridimage);
IBuffer buffer = await rendertargetbitmap.getpixelsasync ();
StorageFile NewFile = await Savedpics.createfileasync (string. Format (
"{0}_{1}.jpg",
DateTime.Now.ToString ("Yyyymmdd_hhmmss_fff"),
Guid.NewGuid ()), creationcollisionoption.replaceexisting);
using (var Writestream = await newfile. OpenAsync (Fileaccessmode.readwrite))
{
Bitmapencoder Jpgencode = await Bitmapencoder.createasync (Bitmapencoder.jpegencoderid, Writestream);
byte[] data = buffer. ToArray ();
Jpgencode. Setpixeldata (
Bitmappixelformat.bgra8,
Bitmapalphamode.straight,
(UINT) Rendertargetbitmap.pixelwidth,
(UINT) Rendertargetbitmap.pixelheight,
96d,96d,data);
Await Jpgencode. Flushasync ();
}
}
Open album camera, etc.
Private async void Opencamera_click (object sender, RoutedEventArgs e)
{
Fileopenpicker openpicker = new Fileopenpicker ();
Openpicker.viewmode = Pickerviewmode.thumbnail;
Openpicker.suggestedstartlocation = pickerlocationid.pictureslibrary;
OPENPICKER.FILETYPEFILTER.ADD (". jpg");
OPENPICKER.FILETYPEFILTER.ADD (". jpeg");
OPENPICKER.FILETYPEFILTER.ADD (". png");
StorageFile file = await openpicker.picksinglefileasync ();
if (file! = null)
{
Application now have read/write access to the picked file
String Text = "Picked Photo:" + file. Name;
using (var outputstream = await file. OpenReadAsync ())
{
BitmapImage bmp = new BitmapImage ();
Bmp. SetSource (OutputStream);
Gridimage is Grid
Gridimage.background = new ImageBrush () {imagesource = BMP};
}
}
}
Not validated
Private Async Task Savewriteablebitmapasjpeg (writeablebitmap bmp, String fileName)
{
Create file in Pictures Library and write JPEG to it
Storagefolder storagefolder = knownfolders.pictureslibrary;
var outputFile = await Storagefolder.createfileasync (fileName, creationcollisionoption.generateuniquename);
using (var Writestream = await Outputfile.openasync (fileaccessmode.readwrite))
{
Await Encodewriteablebitmap (BMP, Writestream, Bitmapencoder.jpegencoderid);
}
}
Private Async Task Encodewriteablebitmap (writeablebitmap bmp, Irandomaccessstream writestream, Guid Encoderid)
{
Copy buffer to pixels
byte[] pixels;
using (var stream = bmp. Pixelbuffer.asstream ())
{
pixels = new byte[(UINT) stream. Length];
Await stream. Readasync (pixels, 0, pixels. Length);
}
Encode Pixels into stream
var encoder = await Bitmapencoder.createasync (Encoderid, Writestream);
Encoder. Setpixeldata (Bitmappixelformat.bgra8, Bitmapalphamode.premultiplied,
(UINT) BMP. Pixelwidth, (UINT) BMP. Pixelheight,
(pixels);
Await encoder. Flushasync ();
}
Win10 save element to album