BitmapFactory.DecodeByteArrayAsync JPEG 为 77KB,生成的位图为 1.6MB
BitmapFactory.DecodeByteArrayAsync JPEG is 77KB resulting Bitmap is 1.6MB
我正在下载一些常规的 JPEG 文件,我已经验证了文件大小。它们是77KB,可以在我的浏览器中查看。
ImageBytes.Length
验证此文件大小。但是,imageBitmap.byteCount
是 1638400 字节。我错过了什么? BitmapFactory.DecodeByteArrayAsync
创建可用的文件,但它们很大。
public async static Task<Bitmap> GetImageBitmapFromUrl(string url)
{
Bitmap imageBitmap = null;
byte[] ImageBytes = null;
var HttpResponseMessage = await AppController.Instance.HttpClient.GetAsync (url);
await HttpResponseMessage.EnsureSuccessStatusCodeAsync();
ImageBytes = await HttpResponseMessage.Content.ReadAsByteArrayAsync ();
if (ImageBytes != null && ImageBytes.Length > 0)
{
imageBitmap = await BitmapFactory.DecodeByteArrayAsync(ImageBytes, 0, ImageBytes.Length);
}
return imageBitmap;
}
JPEG 是一种压缩图像格式。 77KB 是压缩后的大小。但是当您解码为位图时,您正在解压缩它。 1638400 是图像的实际大小(宽度乘以高度乘以颜色深度)。
我正在下载一些常规的 JPEG 文件,我已经验证了文件大小。它们是77KB,可以在我的浏览器中查看。
ImageBytes.Length
验证此文件大小。但是,imageBitmap.byteCount
是 1638400 字节。我错过了什么? BitmapFactory.DecodeByteArrayAsync
创建可用的文件,但它们很大。
public async static Task<Bitmap> GetImageBitmapFromUrl(string url)
{
Bitmap imageBitmap = null;
byte[] ImageBytes = null;
var HttpResponseMessage = await AppController.Instance.HttpClient.GetAsync (url);
await HttpResponseMessage.EnsureSuccessStatusCodeAsync();
ImageBytes = await HttpResponseMessage.Content.ReadAsByteArrayAsync ();
if (ImageBytes != null && ImageBytes.Length > 0)
{
imageBitmap = await BitmapFactory.DecodeByteArrayAsync(ImageBytes, 0, ImageBytes.Length);
}
return imageBitmap;
}
JPEG 是一种压缩图像格式。 77KB 是压缩后的大小。但是当您解码为位图时,您正在解压缩它。 1638400 是图像的实际大小(宽度乘以高度乘以颜色深度)。