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 是图像的实际大小(宽度乘以高度乘以颜色深度)。