Image 将图像解码为位图可以,但为什么?

Image 将图像解码为位图可以,但为什么?,image,bitmap,png,decode,Image,Bitmap,Png,Decode,我想知道为什么我们需要把png解码成位图来显示图像。 为什么不这样显示png(已编码) 我在这里故意问一个愚蠢的问题。我很清楚,不可能像那样显示编码图像,但我想知道原因,以及图像如何显示在屏幕上,因为这样做很容易: canvas.drawBitmap(((AndroidImage)Image).bitmap, x, y, null); 我想了解它的全部。我猜我们需要一个接一个地显示每个像素,但我需要更多细节 知道怎么做很容易,但理解为什么要这样做有点困难 如果有人有课程/图图/文章/解释来解释

我想知道为什么我们需要把png解码成位图来显示图像。 为什么不这样显示png(已编码)

我在这里故意问一个愚蠢的问题。我很清楚,不可能像那样显示编码图像,但我想知道原因,以及图像如何显示在屏幕上,因为这样做很容易:

canvas.drawBitmap(((AndroidImage)Image).bitmap, x, y, null);
我想了解它的全部。我猜我们需要一个接一个地显示每个像素,但我需要更多细节

知道怎么做很容易,但理解为什么要这样做有点困难

如果有人有课程/图图/文章/解释来解释它。。。我将不胜感激

提前谢谢


PS:请不要回答“你需要解码/转换png到位图”我知道。。。这不是我的问题,原因很多。“文件中的值”和“屏幕上的像素”之间实际上没有直接关系

  • 您需要知道位图的宽度和高度。您无法从图像大小推断出这一点——它必须存储在图像文件中的某个位置。(或者其他任何地方。关键是,你必须知道它的大小。)
  • 您需要知道位图的位深度和颜色模型。例如,您不能有意义地将8位索引图像直接复制到接受32位BGR排序和未使用字节的屏幕上
  • 您的示例指定压缩所有图像数据。这是出于一个合理的原因:PNG格式是为网页设计的,在一段时间内,每个字节都会被计算在内。但即使是最简单的BMP文件格式也使用了一种非常特殊的“编码”形式:在其24位格式中,每一行都由每个像素的BGR值集组成,并在末尾填充足够的字节,以使其总长度均匀地被4整除
  • JPEG使用了更高级的编码方案(这很难用几句简短的话来解释),因此它可以进一步压缩图像。高级编码方案允许比常规方法更多的压缩(这反过来意味着“文件中的值”和“屏幕上的像素”之间只有最小的关系)

  • 我要告诉自己更多关于压缩的信息,它看起来很有趣。我想这就是我需要寻找的。。。谢谢你抽出时间。