0

根据路径同步图像的更好解决方案是什么:

  • 数据库 - Web 服务 - 移动应用程序

在我的数据库中,我有一个blob 字段作为图像。所以,我需要为网络服务和移动应用程序传输图像。

我找到了解决方案(尝试),但大图像总是内存不足。解决方案如下:

  • 在我的 Web 服务中,我使用 json API 来存储要集成的 blob 图像。看,我将图像创建为 base64,这对于小图像没有问题,但大图像(2000 个项目)会触发内存不足。所以,我的代码如下:

    public void getImages(String date) throws Exception {
    
    JSONObject jsonObject = new JSONObject();
    JSONArray jsonArray = new JSONArray();
    
    if (date != null)  {
    
        try {
            Class.forName(DRIVER);
            connection = DriverManager.getConnection(URL, USER, PASS);
    
            Statement s = connection.createStatement();
            ResultSet r = s.executeQuery("select * from images");
    
            while (r.next()) {
                JSONObject o = new JSONObject();
    
                byte[] imageBytes = r.getBytes("image");
                String imageBase64 = DatatypeConverter.printBase64Binary(imageBytes);
                o.put("image", imageBase64);
    
                jsonArray.put(o);
            }
    
            jsonObject.put("images", jsonArray);
    
        } catch (SQLException e) {
            System.out.println(e);
        }
    }
    }
    
  • 在我的移动应用程序中,在显示图像后读取 json 并将 base64 解码为每个图像。所以,我不需要将图像存储在移动磁盘或网络服务磁盘中。

移动应用程序将离线工作。有什么想法可以解决我的问题吗?

4

1 回答 1

0

不要将图像直接编码为 JSON。而是返回一个单独提供图像的服务器 URL。

@Alan Krueger 的提示。这是更好的解决方案,在 json 中编码图像是个坏主意。

于 2013-02-27T21:47:52.630 回答