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)
|
||||
{
|
||||
throw new NotSupportedException();
|
||||
return new Bitmap(AssetLoader.Open(uri));
|
||||
}
|
||||
|
||||
public static IImage LoadImage(Stream stream)
|
||||
|
|
@ -21,6 +21,11 @@ namespace MapControl
|
|||
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)
|
||||
{
|
||||
return Thread.CurrentThread.IsThreadPoolThread ?
|
||||
|
|
@ -28,19 +33,11 @@ namespace MapControl
|
|||
Task.Run(() => LoadImage(stream));
|
||||
}
|
||||
|
||||
public static async Task<IImage> LoadImageAsync(string path)
|
||||
public static Task<IImage> LoadImageAsync(string path)
|
||||
{
|
||||
IImage image = null;
|
||||
|
||||
if (File.Exists(path))
|
||||
{
|
||||
using (var stream = File.OpenRead(path))
|
||||
{
|
||||
image = await LoadImageAsync(stream);
|
||||
}
|
||||
}
|
||||
|
||||
return image;
|
||||
return Thread.CurrentThread.IsThreadPoolThread ?
|
||||
Task.FromResult(LoadImage(path)) :
|
||||
Task.Run(() => LoadImage(path));
|
||||
}
|
||||
|
||||
internal static async Task<IImage> LoadMergedImageAsync(Uri uri1, Uri uri2, IProgress<double> progress)
|
||||
|
|
|
|||
|
|
@ -61,6 +61,7 @@ namespace MapControl
|
|||
}
|
||||
|
||||
memoryStream.Seek(0, SeekOrigin.Begin);
|
||||
|
||||
Image.Source = await ImageLoader.LoadImageAsync(memoryStream);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,14 +28,7 @@ namespace MapControl
|
|||
return image;
|
||||
}
|
||||
|
||||
public static Task<ImageSource> LoadImageAsync(Stream stream)
|
||||
{
|
||||
return Thread.CurrentThread.IsThreadPoolThread ?
|
||||
Task.FromResult(LoadImage(stream)) :
|
||||
Task.Run(() => LoadImage(stream));
|
||||
}
|
||||
|
||||
public static async Task<ImageSource> LoadImageAsync(string path)
|
||||
public static ImageSource LoadImage(string path)
|
||||
{
|
||||
ImageSource image = null;
|
||||
|
||||
|
|
@ -43,13 +36,27 @@ namespace MapControl
|
|||
{
|
||||
using (var stream = File.OpenRead(path))
|
||||
{
|
||||
image = await LoadImageAsync(stream);
|
||||
image = LoadImage(stream);
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
WriteableBitmap mergedBitmap = null;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,9 @@ namespace MapControl
|
|||
public static async Task<ImageSource> LoadImageAsync(IRandomAccessStream randomAccessStream)
|
||||
{
|
||||
var image = new BitmapImage();
|
||||
|
||||
await image.SetSourceAsync(randomAccessStream);
|
||||
|
||||
return image;
|
||||
}
|
||||
|
||||
|
|
@ -48,9 +50,9 @@ namespace MapControl
|
|||
{
|
||||
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)
|
||||
{
|
||||
var image = new WriteableBitmap((int)decoder.PixelWidth, (int)decoder.PixelHeight);
|
||||
|
||||
var pixelData = await decoder.GetPixelDataAsync(
|
||||
BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied, new BitmapTransform(),
|
||||
ExifOrientationMode.IgnoreExifOrientation, ColorManagementMode.DoNotColorManage);
|
||||
|
|
|
|||
Loading…
Reference in a new issue