gpt4 book ai didi

java - 将信息存储在 PNG 文件中而不扭曲图像?

转载 作者:行者123 更新时间:2023-12-02 10:15:27 24 4
gpt4 key购买 nike

我想将信息(以前:int/String)写入PNG文件,而不使人眼可见的更改。

为了实现此目的,我以字节数组的形式提取文件:

byte[] imageAsBytes = fileInputStream.readAllBytes();

在下一步中,我跳转 header (8 字节,已尝试最多 300 字节)。我已经处理了我的信息并且可以按位提取它。

我用按位提取的信息替换图片字节中的最后一位。

这对于 .bmp 文件格式效果很好,但将此技术应用于 PNG 文件会扭曲图像。

我的猜测是 PNG 文件在标题后面包含附加信息。

那么 header 后面是否存储了任何信息,如果是的话,是什么将这个“信息部分”标记为一个?

最佳答案

为了读取和解码 .png 文件,我们可以使用 BufferedImage ,如下所示:

File imageFile = new File("myimage.png");
BufferedImage image = ImageIO.read(imageFile);

不,我们可以使用 getRGBsetRGB 方法操纵其像素:

int pixel = image.getRGB(x, y);
// do some byte manipulation on the pixel
// ....
image.setRGB(x, y, pixel);

此后,BufferedImage 应通过管道传输到输出流,以便能够保存新图像。

关于java - 将信息存储在 PNG 文件中而不扭曲图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54716122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com