代码之家  ›  专栏  ›  技术社区  ›  M.J.

在图像中获取字节格式

  •  0
  • M.J.  · 技术社区  · 14 年前

    我有一个要求,我想从用户那里获取图像的URL,然后将其转换成字节格式,并发送给我的服务器,我使用Tomcat作为Web应用服务器,Hibernate作为ORM工具,我已经编写了服务器端代码,用BLOB将传入的字节保存到一个表中,但我的问题是如何将图像转换为字节数组,以便将数组发送到服务器进行进一步处理。

    加上上面的内容,我可以从表中加载数据,然后将字节发送回客户机,但是如何将字节转换回图像。

    目前,我在客户端使用HTML来处理网页,在客户端使用servlet来处理请求和响应。

    请帮帮我。

    3 回复  |  直到 14 年前
        1
  •  1
  •   dogbane    14 年前

    如果它是图像URL,那么只需将该URL直接读取到字节数组中,如下所示:

    public static byte[] getBytesFromURL(URL url) throws IOException {
        InputStream in = null;
        ByteArrayOutputStream out = null;
        try {
            in = url.openStream();
            out = new ByteArrayOutputStream();
            int len;
            byte[] buf = new byte[1024 * 4];
            while ((len = in.read(buf)) >= 0) {
                out.write(buf, 0, len);
            }
            byte[] bytes = out.toByteArray();
            return bytes;
    
        } catch (IOException e) {
            throw e;
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                }
            }
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                }
            }
        }
    }
    
        2
  •  0
  •   Faisal Feroz    14 年前

    检查 ImageIO 在Java中的类。它有阅读和书写图像的方法。有关详细信息,请检查 here .

        3
  •  0
  •   Guillaume    14 年前

    似乎你不需要对你的图像做任何特殊的计算。只需存储它们并将它们发送回浏览器即可。如果是这样的话,你实际上不需要把它们当作图像来处理,你只需要把它们当作 java.io.File . 然后您可以将它们作为blob存储在数据库中。

    帮助您管理可以使用的上载 commons-fileupload . 或者,如果您使用的是SpringMVC,请查看 Multipart Resolver .