Java Чтение нескольких изображений - PullRequest
0 голосов
/ 14 мая 2018

У меня есть база данных Mysql, которая содержит путь к изображениям, хранящимся на моем локальном диске.Мне нужно написать программу на Java, которая читает эти изображения по одному.

Я написал следующий код:

import java.sql.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;


public class ReadMultipleImages
{

  public static void main(String[] args)
  {
    try
    {

      String myDriver = "com.mysql.cj.jdbc.Driver";
      String myUrl = "jdbc:mysql://localhost/db?useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
      Class.forName(myDriver);
      Connection conn = DriverManager.getConnection(myUrl, "user", "password");

      String query = "SELECT * FROM test";

      Statement st = conn.createStatement();

      ResultSet rs = st.executeQuery(query);

      while (rs.next())
      {

        String img = rs.getString("img");

        BufferedImage in = ImageIO.read(new File(img));     
        System.out.println("Width of Image : " + in.getWidth());

      }
      st.close();
    }
    catch (Exception e)
    {
      System.err.println("Got an exception! ");
      System.err.println(e.getMessage());
    }
  }
}

Он не работает с несколькими путями к изображениям.Тем не менее, когда я прошел прямой путь одиночного изображения:

BufferedImage in = ImageIO.read(new File('/tmp/frame_004.jpej'));

Это дает мне точные результаты, которые я хочу.Я обнаружил, что он работает только с одним путем изображения, не более того.Как я могу работать с несколькими изображениями, возвращаемыми переменной img ?

1 Ответ

0 голосов
/ 14 мая 2018

Наконец то на колесах:

import java.sql.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;


public class ReadMultipleImages
{

  public static void main(String[] args)
  {
    try
    {

      String myDriver = "com.mysql.jdbc.Driver";
      String myUrl = "jdbc:mysql://localhost:port/db_name?useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
      Class.forName(myDriver);
      Connection conn = DriverManager.getConnection(myUrl, "user", "password");

      String query = "SELECT * FROM metadata";

      Statement st = conn.createStatement();

      ResultSet rs = st.executeQuery(query);

      while (rs.next())
      {

    String srno = rs.getString("srno"); 
    String path = rs.getString("path");
    String file = rs.getString("file");

    // PATH: /home/memon/images/, FILE: frame_1524043865776151594.jpeg

    String loc = path + file;

    System.out.println("location : " + loc);

    BufferedImage in = ImageIO.read(new File(loc));     
        System.out.println("SRno. "+srno+" Width of Image : " + in.getWidth() + " X " + in.getHeight());

      }
      st.close();
    }
    catch (Exception e)
    {
      System.err.println("Got an exception! ");
      System.err.println(e.getMessage());
    }
  }
}

Выход:

location : /home/memon/images/frame_1524043865776151594.jpeg
SRno. 0 Width of Image : 262 X 90
location : /home/memon/images/frame_1524043865776151595.jpeg
SRno. 1 Width of Image : 1920 X 1080
...