1

我开发了一个项目来加密图像。该程序运行良好,但在加密 148 KB png 图像后,它变为 257 KB。当同一个文件被解密回来时,我得到了旧图像,但图像现在是 219 KB。为什么体积几乎翻了一番?

我的代码:无法读取 jar 中的图像

4

1 回答 1

0

问题不在于您的加密/解密步骤,而在于您如何读取和写入 PNG。

FileInputStream您应该使用和之类的二进制流来读取和写入 PNG FileOutputStream。通过保持二进制,您可以确保您不会更改数据。

图像更改大小(148 KB -> 219 KB)的原因是您没有保留原始文件的所有属性。

例如,输出宽度、高度和类型使用以下语句进行硬编码(而不是从原始图像中填充):

BufferedImage writeImage = new BufferedImage(512, 512, BufferedImage.TYPE_BYTE_GRAY);
于 2013-03-26T04:56:59.493 回答