Vb.net png文件的大小减小

Vb.net png文件的大小减小,vb.net,png,Vb.net,Png,我将png图像中所有像素的最后4位更改为零。为什么图像的大小减少到不到一半?。我相信png是无损压缩。我将能够检索嵌入的数据。(在这里,我将0000添加到所有像素,但在实际情况下,我需要添加不同的数据)我使用的是vb 2015。我使用的代码附在下面 Dim image1作为位图=新位图(“C:\STEG\originalimage.png”) PNG是一种无损图像压缩格式,是的。然而,若它是无损的或并没有任何关系的大幅度减少的大小。影响它的是压缩算法的工作方式 我不知道PNG的算法是如何工作的,

我将png图像中所有像素的最后4位更改为零。为什么图像的大小减少到不到一半?。我相信png是无损压缩。我将能够检索嵌入的数据。(在这里,我将0000添加到所有像素,但在实际情况下,我需要添加不同的数据)我使用的是vb 2015。我使用的代码附在下面

Dim image1作为位图=新位图(“C:\STEG\originalimage.png”)


PNG是一种无损图像压缩格式,是的。然而,若它是无损的或并没有任何关系的大幅度减少的大小。影响它的是压缩算法的工作方式

我不知道PNG的算法是如何工作的,但基本上压缩是关于重复数据的。例如,如果每个字节的最后4位是
0000
,如下所示:

1000 0000
0000 0000
1101 0000
0110 0000
…例如,压缩算法可以将其表示为:

repeat 0000 every 4 bits
或:

在压缩文件中,这可能只占用几个字节,而在未压缩文件中,这四位占每个字节的一半


因此,如果您有1KB=1024字节的颜色数据,并像上面的第一个示例那样对其进行压缩,则文件大小(粗略地说)将缩小到512字节+表示重复的几个字节。

“我是否能够检索嵌入的数据”您为什么需要问我们这个问题?你为什么不自己试试呢?除了我的答案:一个压缩算法可以重复的数据越多,它可以删除的原始数据就越多。它删除的数据越多,压缩文件的大小就越小。例如,如果你有一个包含完全随机数据的文件,你将无法对其进行太多压缩(如果有任何压缩),因为没有重复,其中没有模式。很高兴我能帮上忙!请注意,我所描述的内容非常笼统。不同的压缩算法的方法不同。我不知道PNG是如何工作的,但根据它使用的维基百科。
repeat 0000 every 4 bits
1000 4-0
4-0  4-0
1101 4-0
0110 4-0

(4-0 indicates that it should write four '0' bits)