【问题标题】:Convert image to binary to apply Image Steganography [closed]将图像转换为二进制以应用图像隐写术 [关闭]
【发布时间】:2019-02-15 18:43:33
【问题描述】:

我试图将“.jpg”图像转换为二进制,然后更改其二进制值以隐藏一些数据。但是什么也找不到。有什么想法吗?

【问题讨论】:

  • 希望我们如何回答这个问题?
  • 你是什么意思?
  • 请注意。不要这样做。使用您的语言的图像阅读器类/功能读取图像以加载像素并修改它们。 jpeg 格式的二进制数据绝不代表这些像素值,如果直接修改它们会损坏介质。

标签: java python steganography


【解决方案1】:

如果我正确理解了这个问题,您想获取 jpg 文件的单个字节,可以使用 DataInputStream 读取:

File imageFile;
DataInputStream dis = new DataInputStream(new FileInputStream(imageFile));

int input = dis.read();

dis.close();

input 然后保存文件的第一个字节,如果再次调用read(在dis.close() 之前),则可以读取后续字节。接下来,您必须对它们进行操作,最后,您可以将它们写入此文件或另一个文件,其 DataOutputStream 就像相应的输入流一样工作。只是不要忘记在完成读取或写入后关闭流,以便释放系统资源并关闭文件。否则写入的数据可能会丢失。

【讨论】:

  • 我试图做的是获取所有像素并将它们存储在一个数组中,然后获取一个范围内的像素并修改二进制值。
  • 在这种情况下,使用ImageIO将文件作为图像读取,它返回一个BufferedImage,并使用该类的getRGB()setRGB()方法读取和修改单个像素。完成后,您可以再次使用ImageIO 编写BufferedImage
  • 是的,但我需要先将所有像素值存储在一个数组中,对吗?我怎么能这样做?
  • 您不必存储像素。您可以直接逐像素编辑BufferedImage,然后再次存储。
猜你喜欢
  • 2015-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-13
  • 2014-06-07
  • 2015-08-27
  • 2012-05-26
相关资源
最近更新 更多