【问题标题】:Converting binary data to an image将二进制数据转换为图像
【发布时间】:2015-12-10 03:57:09
【问题描述】:

我有一个问题,希望你能帮助我。问题如下。我有一台具有 http 服务的相机,我正在使用 http 与相机通信。所以我发送 http 请求并收到一个 http 响应,其中我有一个二进制 jpeg 数据。但我不知道如何将该数据转换为图片。所以我的问题,我的主要问题是如何将二进制数据转换为图片。

这是我目前的代码,我一直在获取图像。

URL url = new URL("http://10.10.1.154" + GETIMAGESCR());
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine;
// while ((inputLine = in.readLine()) != null){
// inputLine = in.readLine();
File file = new File("D:\\alphas\\proba.bin");
boolean postoi = file.createNewFile();
FileWriter fstream = new FileWriter("D:\\alphas\\proba.bin");
BufferedWriter out = new BufferedWriter(fstream);
while ((inputLine = in.readLine()) != null){
out.write(in.readLine());
// out.close();
// System.out.println("File created successfully.");
System.out.println(inputLine);
}
System.out.println("File created successfully.");
out.close();
in.close()

;

【问题讨论】:

  • 我建议使用某种 jpeg 库。自己做可能有点工作。但是,除非您指定某种您想要使用的编程语言,否则我认为我不能更具体。假设您正在寻找编程解决方案。
  • 我在java中工作。我想编写一个代码来帮助我接收普通 jpeg 数据,我想把二进制数据保存在一个文件中,我只是不知道如何使用 java 将二进制数据转换为图像。
  • 您应该添加 java 标签。顺便说一句,这些字节在技术上是原始形式的图片/图像(用 jpeg 压缩)。有点。你到底想对他们做什么?将它们保存到文件中?
  • 我不需要像 raw 一样保存,我们需要创建图片并像 jpeg 一样保存图片。不需要原始数据,我只需要获取并保存图片,但我不知道如何获取图片
  • 只需像通常将数据保存到文件中一样保存即可。如果将其压缩为 jpeg,您将拥有 jpeg 文件。

标签: java image http binary


【解决方案1】:

试试这个代码:

URL url = new URL("http://10.10.1.154" + GETIMAGESCR());
InputStream is = new InputStream(url.openStream());
FileOutputStream out = new FileOutputStream("D:\\alphas\\proba.jpg");
byte[] data = new byte[1024];
int readBytes = 0;
while ((readBytes = is.read(data)) > 0) {
  out.write(data,0,readBytes);
}
out.flush();
out.close();
is.close()

【讨论】:

  • 非常感谢。但是我在java中很新,所以这是我第一次使用图像,所以如果你能帮助我更多一点,我将不胜感激,可能有一个例子,如何解决这个问题,以及如何不使用阅读器但是直接使用 inputstream 并像 jpeg 一样保存图片。谢谢转发。
  • 我的问题究竟是如何保存所有这些而不使用阅读器?
  • 非常非常非常感谢!!!!我一定会试试这个我会告诉你它是否工作正常。再次感谢您的所有努力。问候
  • 如果它符合您的预期,请考虑接受答案
【解决方案2】:

你可以使用 javax.imageio.ImageIO

URL url = new URL("http://10.10.1.154" + GETIMAGESCR());
BufferedImage bi = ImageIO.read(url.openStream())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 2017-02-04
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多