我编写了自己的代码来实现隐写术项目来隐藏图像中的文本。该代码完美运行。
但是当我将图像保存到 jpeg 文件并再次打开时,数据丢失,并且我得到一个垃圾结果文本(好像像素没有正确保存到新图像中)
但是当我将图像保存为 Bmp 格式时,我可以完美地得到隐藏的文本,就好像像素正确保存到输出图像中一样:
那么问题出在哪里?
我编写了自己的代码来实现隐写术项目来隐藏图像中的文本。该代码完美运行。
但是当我将图像保存到 jpeg 文件并再次打开时,数据丢失,并且我得到一个垃圾结果文本(好像像素没有正确保存到新图像中)
但是当我将图像保存为 Bmp 格式时,我可以完美地得到隐藏的文本,就好像像素正确保存到输出图像中一样:
那么问题出在哪里?
您需要使用无损 jpeg,很少有库可以做到这一点(Pegasus、LeadTools)如果您不能使用它们中的任何一个,那么您需要使用 PNG。.Net 中的 Stock Jpeg 压缩是有损的,因此像素不会相同。
如果您想将隐写术与有损压缩方法(如 JPEG)一起使用,那么您现有的算法显然不够稳健。
要查看在这种情况下如何使用隐写术的示例,请查看开源 F5-隐写术项目