protected static async void save(byte[] inData, int width, int height, Stream outStream, ImageFormats imageFormat, ImageSavedCallbackMethod imageSavedCallback)
{
try
{
using (var memoryStream = new InMemoryRandomAccessStream())
{
Guid encodeID = new Guid();
switch (imageFormat)
{
case (ImageFormats.PNG): encodeID = BitmapEncoder.PngEncoderId; break;
case (ImageFormats.JPG): encodeID = BitmapEncoder.PngEncoderId; break;
case (ImageFormats.BMP): encodeID = BitmapEncoder.PngEncoderId; break;
default: Debug.ThrowError("ImageMetro", "Unsuported image format: " + imageFormat.ToString()); break;
}
BitmapEncoder encoder = await BitmapEncoder.CreateAsync(encodeID, memoryStream);
encoder.SetPixelData(BitmapPixelFormat.Rgba8, BitmapAlphaMode.Straight, (uint)width, (uint)height, 96, 96, inData);
await encoder.FlushAsync();
var stream = memoryStream.AsStream();
stream.Position = 0;
await stream.CopyToAsync(outStream);
}
}
catch (Exception e)
{
if (imageSavedCallback != null) imageSavedCallback(false);
}
if (imageSavedCallback != null) imageSavedCallback(true);
}
#endregion