java jpg像素编辑

时间:2014-06-08 09:45:26

标签: java image compression rgb steganography

我有一个关于jpg图像创建的问题ImageIO.write(imgStega," jpeg",file): 我正在做一些隐写术,我必须在每个像素的最低位隐藏数据。我用getRGBA()[pos]执行此操作,它为我提供了红色,蓝色,绿色,Alpha组件。然后我根据%2更改每个值+1或-1。

问题是,每次我使用ImageIO.write时,它会随机更改我的所有图像(它正在压缩)。那么,我该如何保存我的图像呢?我没有看到任何解决方案在真实图像上进行隐写术。

无论我使用png还是jpg都相同,重量会发生变化。你知道一种保存形象的方法吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

根据定义,

JPEG是有损的,因此您看到的数据修改是预期的,并且您在上下文中无法做很多事情。

另一方面,PNG也是以无损方式压缩的。 png文件的大小会改变,因为png压缩类似于常规文件压缩(称为LZ):非常严格地说,它检测重复的字节模式并用更少的字节对它们进行编码。更改图像的字节会更改这些模式,这可能会改变压缩效率。你也可以看到尺寸的增加。但是当应用程序打开您修改过的图像时,它应该会看到您存储的字节。

尺寸变化是否值得关注,因为这可能会让某人检测到您的修改?在这种情况下,除了仅使用未压缩格式之外,我没有看到任何其他解决方案。

相关问题