java jpg 像素编辑

标签 java image compression rgb steganography

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

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

无论我使用png还是jpg,都是一样的,权重是变化的。您知道如何按原样保存我的图像吗?

提前致谢!

最佳答案

JPEG根据定义是有损的,因此您看到的数据修改是预期的,并且在您的上下文中您对此无能为力。

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

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

关于java jpg 像素编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24104867/

相关文章:

Java $APP_PACKAGE 路径名变量不起作用

java - java中的电话键盘无法正常工作

java - 如何知道图像文件的类型

java - Android:向图像添加框架

java - 结合使用 LRU 图像缓存和 HTTPResponseCache 进行磁盘和内存缓存

javascript - 我们有 Visual Studio 2005/2008 的 Minifier 插件吗?

c++-cli - 压缩和解压缩整数数组的函数

Ruby zlib deflate 海量数据

java - 用java成对产生随机数

java - 找不到指定的模块。 Tess4j 使用 Maven