Graphics 为什么';我们不能保持质量吗?

Graphics 为什么';我们不能保持质量吗?,graphics,Graphics,我读到,要将压缩图像读入内存,必须先解压缩图像,然后分配原始大小。因此,由于它是解压缩的,并且在内存中分配了压缩之前的大小,为什么在使用特定软件查看压缩图像时,其分辨率与原始图像不同?从技术上讲,解压缩压缩图像确实可以保持压缩图像的质量。但是,压缩图像可能会降低质量(即,压缩后的图像与原始图像相比略有降低) 对图像的具体更改取决于所应用的压缩类型;也就是说,我不熟悉任何会改变图像分辨率或大小的压缩。你确定你说的对吗?压缩不是降低图像的分辨率或像素大小。压缩是指减少表示特定图像所需的字节数 您可以

我读到,要将压缩图像读入内存,必须先解压缩图像,然后分配原始大小。因此,由于它是解压缩的,并且在内存中分配了压缩之前的大小,为什么在使用特定软件查看压缩图像时,其分辨率与原始图像不同?

从技术上讲,解压缩压缩图像确实可以保持压缩图像的质量。但是,压缩图像可能会降低质量(即,压缩后的图像与原始图像相比略有降低)


对图像的具体更改取决于所应用的压缩类型;也就是说,我不熟悉任何会改变图像分辨率或大小的压缩。你确定你说的对吗?

压缩不是降低图像的分辨率或像素大小。压缩是指减少表示特定图像所需的字节数

您可以将图像视为4字节结构的数组,每个像素对应一个字节,其中每个字节表示每个像素颜色的一个组件,即红色、绿色、蓝色和alpha。使用此方案表示图像所需的大小为

width * height * 4
因此,一个100x100像素的图像将有10000像素,因此会消耗40000字节。事实上,这大致就是该格式存储图像的方式

但是,这不是表示这10000像素的唯一方法。例如,如果前5000个像素是蓝色的,而底部的像素是棕色的,则可以通过说“blue:5000,brown 5000”之类的话来表示图像,这将需要更少的字节来表示。这个方案大致上就是RLE()的工作原理,广泛应用于许多格式,例如

但是,为了减少表示图像中字节所需的字节数,您只能做很多事情。数据并不总是很容易用更少的字节来表示,因此一些压缩算法(如文件中使用的压缩算法)只是稍微修改像素,因此数据更容易压缩,但变化不是很明显。如果这些变化是可以接受的,那么在压缩图像时就有可能获得令人印象深刻的结果。这就是所谓的“有损压缩”


压缩图像的全部目的是使图像从一个地方移动到另一个地方变得更容易,可以将图像存储在光盘上,也可以通过互联网发送。但是,当您要显示图像时,您的计算机必须告诉显示器每个像素必须具有什么颜色,因此,一旦要显示图像,您需要对其进行解压缩。

“为什么使用特定软件查看压缩图像时,其分辨率与原始图像不同”。。。你在哪里观察到这种行为?此外,这个问题实际上与游戏开发无关。“我不熟悉任何会改变图像分辨率或大小的压缩。”。。那么为什么要使用压缩呢?以减小图像的文件大小。压缩的是文件大小,而不是图像大小。还要注意,有损压缩是强制给定压缩率的唯一方法(例如,“不惜任何代价使我的图像小于100KiB”)。