Added ImageLoader.LoadImageAsync(IBuffer buffer)

This commit is contained in:
ClemensFischer 2023-08-19 15:59:55 +02:00
parent d7eb26f9cd
commit f3aad38814
3 changed files with 25 additions and 15 deletions

View file

@ -27,13 +27,8 @@ namespace MapControl
var pixelData = await decoder.GetPixelDataAsync(
BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied, new BitmapTransform(),
ExifOrientationMode.IgnoreExifOrientation, ColorManagementMode.DoNotColorManage);
var pixels = pixelData.DetachPixelData();
using (var pixelStream = image.PixelBuffer.AsStream())
{
await pixelStream.WriteAsync(pixels, 0, pixels.Length);
}
pixelData.DetachPixelData().CopyTo(image.PixelBuffer);
return image;
}
@ -51,6 +46,22 @@ namespace MapControl
return LoadImageAsync(stream.AsRandomAccessStream());
}
public static async Task<ImageSource> LoadImageAsync(IBuffer buffer)
{
using (var stream = new InMemoryRandomAccessStream())
{
await stream.WriteAsync(buffer);
stream.Seek(0);
return await LoadImageAsync(stream);
}
}
public static Task<ImageSource> LoadImageAsync(byte[] buffer)
{
return LoadImageAsync(buffer.AsBuffer());
}
public static async Task<ImageSource> LoadImageAsync(string path)
{
ImageSource image = null;