mirror of
https://github.com/ClemensFischer/XAML-Map-Control.git
synced 2025-12-06 07:12:04 +01:00
ImageLoader
This commit is contained in:
parent
789fc98789
commit
07548efb93
|
|
@ -13,7 +13,7 @@ namespace MapControl
|
||||||
{
|
{
|
||||||
public static IImage LoadImage(Uri uri)
|
public static IImage LoadImage(Uri uri)
|
||||||
{
|
{
|
||||||
throw new NotSupportedException();
|
return new Bitmap(AssetLoader.Open(uri));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IImage LoadImage(Stream stream)
|
public static IImage LoadImage(Stream stream)
|
||||||
|
|
@ -21,6 +21,11 @@ namespace MapControl
|
||||||
return new Bitmap(stream);
|
return new Bitmap(stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IImage LoadImage(string path)
|
||||||
|
{
|
||||||
|
return File.Exists(path) ? new Bitmap(path) : null;
|
||||||
|
}
|
||||||
|
|
||||||
public static Task<IImage> LoadImageAsync(Stream stream)
|
public static Task<IImage> LoadImageAsync(Stream stream)
|
||||||
{
|
{
|
||||||
return Thread.CurrentThread.IsThreadPoolThread ?
|
return Thread.CurrentThread.IsThreadPoolThread ?
|
||||||
|
|
@ -28,19 +33,11 @@ namespace MapControl
|
||||||
Task.Run(() => LoadImage(stream));
|
Task.Run(() => LoadImage(stream));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<IImage> LoadImageAsync(string path)
|
public static Task<IImage> LoadImageAsync(string path)
|
||||||
{
|
{
|
||||||
IImage image = null;
|
return Thread.CurrentThread.IsThreadPoolThread ?
|
||||||
|
Task.FromResult(LoadImage(path)) :
|
||||||
if (File.Exists(path))
|
Task.Run(() => LoadImage(path));
|
||||||
{
|
|
||||||
using (var stream = File.OpenRead(path))
|
|
||||||
{
|
|
||||||
image = await LoadImageAsync(stream);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return image;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static async Task<IImage> LoadMergedImageAsync(Uri uri1, Uri uri2, IProgress<double> progress)
|
internal static async Task<IImage> LoadMergedImageAsync(Uri uri1, Uri uri2, IProgress<double> progress)
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ namespace MapControl
|
||||||
}
|
}
|
||||||
|
|
||||||
memoryStream.Seek(0, SeekOrigin.Begin);
|
memoryStream.Seek(0, SeekOrigin.Begin);
|
||||||
|
|
||||||
Image.Source = await ImageLoader.LoadImageAsync(memoryStream);
|
Image.Source = await ImageLoader.LoadImageAsync(memoryStream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,14 +28,7 @@ namespace MapControl
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Task<ImageSource> LoadImageAsync(Stream stream)
|
public static ImageSource LoadImage(string path)
|
||||||
{
|
|
||||||
return Thread.CurrentThread.IsThreadPoolThread ?
|
|
||||||
Task.FromResult(LoadImage(stream)) :
|
|
||||||
Task.Run(() => LoadImage(stream));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static async Task<ImageSource> LoadImageAsync(string path)
|
|
||||||
{
|
{
|
||||||
ImageSource image = null;
|
ImageSource image = null;
|
||||||
|
|
||||||
|
|
@ -43,13 +36,27 @@ namespace MapControl
|
||||||
{
|
{
|
||||||
using (var stream = File.OpenRead(path))
|
using (var stream = File.OpenRead(path))
|
||||||
{
|
{
|
||||||
image = await LoadImageAsync(stream);
|
image = LoadImage(stream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Task<ImageSource> LoadImageAsync(Stream stream)
|
||||||
|
{
|
||||||
|
return Thread.CurrentThread.IsThreadPoolThread ?
|
||||||
|
Task.FromResult(LoadImage(stream)) :
|
||||||
|
Task.Run(() => LoadImage(stream));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Task<ImageSource> LoadImageAsync(string path)
|
||||||
|
{
|
||||||
|
return Thread.CurrentThread.IsThreadPoolThread ?
|
||||||
|
Task.FromResult(LoadImage(path)) :
|
||||||
|
Task.Run(() => LoadImage(path));
|
||||||
|
}
|
||||||
|
|
||||||
internal static async Task<ImageSource> LoadMergedImageAsync(Uri uri1, Uri uri2, IProgress<double> progress)
|
internal static async Task<ImageSource> LoadMergedImageAsync(Uri uri1, Uri uri2, IProgress<double> progress)
|
||||||
{
|
{
|
||||||
WriteableBitmap mergedBitmap = null;
|
WriteableBitmap mergedBitmap = null;
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,9 @@ namespace MapControl
|
||||||
public static async Task<ImageSource> LoadImageAsync(IRandomAccessStream randomAccessStream)
|
public static async Task<ImageSource> LoadImageAsync(IRandomAccessStream randomAccessStream)
|
||||||
{
|
{
|
||||||
var image = new BitmapImage();
|
var image = new BitmapImage();
|
||||||
|
|
||||||
await image.SetSourceAsync(randomAccessStream);
|
await image.SetSourceAsync(randomAccessStream);
|
||||||
|
|
||||||
return image;
|
return image;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -48,9 +50,9 @@ namespace MapControl
|
||||||
{
|
{
|
||||||
var file = await StorageFile.GetFileFromPathAsync(path);
|
var file = await StorageFile.GetFileFromPathAsync(path);
|
||||||
|
|
||||||
using (var stream = await file.OpenReadAsync())
|
using (var randomAccessStream = await file.OpenReadAsync())
|
||||||
{
|
{
|
||||||
image = await LoadImageAsync(stream);
|
image = await LoadImageAsync(randomAccessStream);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -60,6 +62,7 @@ namespace MapControl
|
||||||
internal static async Task<WriteableBitmap> LoadWriteableBitmapAsync(BitmapDecoder decoder)
|
internal static async Task<WriteableBitmap> LoadWriteableBitmapAsync(BitmapDecoder decoder)
|
||||||
{
|
{
|
||||||
var image = new WriteableBitmap((int)decoder.PixelWidth, (int)decoder.PixelHeight);
|
var image = new WriteableBitmap((int)decoder.PixelWidth, (int)decoder.PixelHeight);
|
||||||
|
|
||||||
var pixelData = await decoder.GetPixelDataAsync(
|
var pixelData = await decoder.GetPixelDataAsync(
|
||||||
BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied, new BitmapTransform(),
|
BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied, new BitmapTransform(),
|
||||||
ExifOrientationMode.IgnoreExifOrientation, ColorManagementMode.DoNotColorManage);
|
ExifOrientationMode.IgnoreExifOrientation, ColorManagementMode.DoNotColorManage);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue