码迷,mamicode.com
首页 > Windows程序 > 详细

Win10 保存Element到相册

时间:2015-05-22 14:54:18      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

保存控件到相册

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

}

打开相册 相机等

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 has 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 };
}
}
}

 

未验证

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,
96, 96, pixels);
await encoder.FlushAsync();
}

Win10 保存Element到相册

标签:

原文地址:http://www.cnblogs.com/luquanmingren/p/4522086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!