我有一个带有表“Images”的数据库,其中包含一个字段“Img”,其中包含图像(类型为BLOB)。
我用这样的查询sql提取图像:
select img from images where id = 1
在java swing项目中,如何获取此查询的图像结果?
答案 0 :(得分:4)
这应该有效
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.
}