java - 从数据库中提取图像(blob)并将其插入到框架中 Java

标签 java mysql swing

我有一个数据库,其中有一个表“Images”,其中一个字段“Img”包含图像(BLOB 类型)。

我使用如下查询 SQL 提取图像:

select img from images where id = 1

在java swing项目中如何获取此查询的图像结果?

最佳答案

这应该有效

Blob blob = rs.getBlob("img");
int blobLength = (int) blob.length();  

byte[] bytes = blob.getBytes(1, blobLength);
blob.free();
BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytes));

您可以选择如何将其添加到框架中。您可以将其添加到 JLabel 中,也可以将其绘制在 JPanel 上。仅取决于您的要求和/或偏好。

  • 使用JLabel

    ImageIcon icon = new ImageIcon(bytes); // you can read straight from byte array
    JLabel label = new JLabel(icon);
    frame.add(label);
    
  • JPanel 上绘画

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(img, 0, 0, getWidth(), getHeight(), this); 
        // img is the BufferedImage in the first code.
    }
    

关于java - 从数据库中提取图像(blob)并将其插入到框架中 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21887882/

相关文章:

MySQL:将每组中的前 N ​​行插入到表中。假设有数百万组

mysql - 如何在mysql中将单行拆分为多列

mysql - 我如何在我的行中找到相同的值并将其放入 CASE 中

java - Eclipse 的 Swing 设计器插件

java - 如何使所有工具提示在 Java 中半透明?

java - int[ ] 和 Integer [ ] 之间有什么区别

Java : my program "sometimes" wont store the smallest element per row of a 2d array

Java RSA key 大小

java - IntelliJ IDEA - JScrollpane 中的 JPanel 未显示内容

java - 使用 SwingWorker 发生异常后,即使值正确,线程也不会执行