Java 如何编辑JPG文件的字节代码,保持其页眉和页脚不变?(爪哇语)

Java 如何编辑JPG文件的字节代码,保持其页眉和页脚不变?(爪哇语),java,binary,jpeg,steganography,Java,Binary,Jpeg,Steganography,我已经成功地用Java在PNG文件中编写了我的隐写术程序。我的程序在PNG和BMP文件中都运行良好。但是,当我尝试在JPG文件中运行我的程序时,显示的数据与原始数据不同。当然,每种文件类型的头并不相同。现在我想知道;PNG和JPG文件的数据结构是否不同?我需要确切地知道如何操作JPG文件的字节而不影响其页眉和页脚 谢谢。首先,您需要告诉您用于图像隐写术的确切方法,例如,将秘密数据隐藏在图像像素的lsb中,以二进制格式读取文件等 如果与lsb的工作是你的程序,那么我希望下面的答案满足你的疑问- “

我已经成功地用Java在PNG文件中编写了我的隐写术程序。我的程序在PNG和BMP文件中都运行良好。但是,当我尝试在JPG文件中运行我的程序时,显示的数据与原始数据不同。当然,每种文件类型的头并不相同。现在我想知道;PNG和JPG文件的数据结构是否不同?我需要确切地知道如何操作JPG文件的字节而不影响其页眉和页脚


谢谢。

首先,您需要告诉您用于图像隐写术的确切方法,例如,将秘密数据隐藏在图像像素的lsb中,以二进制格式读取文件等

如果与lsb的工作是你的程序,那么我希望下面的答案满足你的疑问-

“PNG”和“BMP”实际上是无损文件格式。在创建新图像时处理这些格式的像素位后,不会丢失任何数据。这就是您能够检索所有隐藏数据的原因

“JPG”格式使用有损压缩技术,因此隐藏在像素中的数据丢失。甚至我也面临着这个问题,解决这个问题的方法存在于处理变换域中的图像。您需要使用直接余弦变换方法来实现它

变换域涉及算法操作和图像变换,如离散余弦变换(DCT)和小波变换。这些方法可以在图像的更重要区域隐藏信息,还可以操纵图像的属性,如亮度。这些技术比图像域逐位隐写方法更有效。变换域技术可以应用于任何格式的图像。此外,无损和无损格式之间的转换可能会继续存在

DCT在隐写术中是如何工作的?

图像被分解为8x8个像素块。DCT从左到右、从上到下应用于每个块。量化表压缩每个块以缩放DCT系数,并且消息被嵌入缩放DCT系数中

这种方法还需要大量的研究。我正在编写代码,并将尽快发布

从其他开发者那里听到其他方法或不同的有效技术将是一件很高兴的事情