通过java中的url检索单个图像

时间:2012-10-10 19:57:24

标签: java image swing image-processing binary

我遇到了问题,希望你能帮助我。我将不胜感激任何人的帮助。问题如下。

我有一台有http服务的相机,我正在使用http与相机通信。所以问题是我发送http请求并且我已经回复了一个http响应,其中我有一个二进制jpeg数据。但我不知道如何将这些数据转换成图片。

所以我的问题是如何用java将二进制数据转换成图片?

这是一个例子

http请求:

GET (url to picture) 

http回复:

binary jpeg data

我感谢你们所有人的帮助。

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中的url检索单个图像

3 个答案:

答案 0 :(得分:2)

你只需要在响应中写入图像的字节数据并设置正确的内容类型,它将从servlet提供图像

答案 1 :(得分:1)

try {
    URL url = new URL("http://site.com/image.jpeg");

    java.awt.Image image = java.awt.Toolkit.getDefaultToolkit().createImage(url);
} catch (MalformedURLException e) {
} catch (IOException e) {
}

答案 2 :(得分:1)

我错过了什么,或者你只是在寻找这个:

new ImageIcon(new URL("http://some.link.to/your/image.jpg"));

如果您需要保存URL中的数据,那么只需从相应的InputStream读取字节并将读取的字节写入FileOutputStream: