我开发了一个加密图像的项目。该程序工作正常但加密148 KB png图像后,它变为257 KB。当相同的文件被解密回来时,我将旧图像恢复,但图像现在是219 KB。为什么尺寸几乎翻倍?
答案 0 :(得分:0)
这不是你的加密/解密步骤的问题,而是你如何读写PNG。
您应该使用FileInputStream
和FileOutputStream
之类的二进制流来读写PNG。通过保持二进制,您可以确保不要更改数据。
图像更改大小(148 KB - > 219 KB)的原因是您不保留原始文件中的所有属性。
作为示例,输出宽度,高度和类型使用以下语句进行硬编码(而不是从原始图像填充它):
BufferedImage writeImage = new BufferedImage(512, 512, BufferedImage.TYPE_BYTE_GRAY);