如何将已存储在MySQL数据库中的图像转换为本地存储的图像

时间:2016-06-15 10:13:39

标签: java mysql image

我使用Java和MySQL构建了一个软件。 它的功能是接收图像并将它们存储到数据库(MySQL)中。 我这样做是为了便于备份。但现在我意识到数据库的压力正在增加。因此,我决定将当前在数据库中的所有图像转换为大约306行,以便在本地存储它们在系统上的路径。我该怎么做,以避免重新输入数据?

1 个答案:

答案 0 :(得分:0)

检索所有图像并使用以下代码在本地保存:

  

使用SELECT image FROM TABLE

     

然后在LOOP中使用此代码

 private static void save(BufferedImage image, String fileName,String ext) {

        File file = new File(fileName + "." + ext);
        try {
            ImageIO.write(image, ext, file);  // ignore returned boolean
        } catch(IOException e) {
            System.out.println("Write error for " + file.getPath() +
                               ": " + e.getMessage());
        }
    }

    private static BufferedImage toBufferedImage(Image src) {
        int w = src.getWidth(null);
        int h = src.getHeight(null);
        int type = BufferedImage.TYPE_INT_RGB;  // other options
        BufferedImage dest = new BufferedImage(w, h, type);
        Graphics2D g2 = dest.createGraphics();
        g2.drawImage(src, 0, 0, null);
        g2.dispose();
        return dest;
    }