显示blob字段中的图像 - Java

时间:2014-05-16 16:30:28

标签: java mysql database image blob

我必须在JLabel或其他任何显示存储在mysql数据库(在blob字段中)的图片来显示它。 写完这一行后,我该怎么办?

Blob b = rs.getBlob ("image"); 

请详细解释,我搜遍了整个网站,但还没有完成任何事情。提前感谢所有人。

PS:我要求管理员不要立即推迟话题,否则我无法复制,谢谢:)。

堆栈跟踪:

java.lang.NullPointerException
Finger was removed from fingerprint reader
at javax.swing.ImageIcon.<init>(Unknown Source)
at AppMain.ExtractDB(AppMain.java:294)
at AppMain.initDB(AppMain.java:271)
at AppMain.initialize(AppMain.java:245)
at AppMain.<init>(AppMain.java:68)
at MainForm.identify(MainForm.java:356)
at MainForm.extract(MainForm.java:257)
at MainForm.onImageAcquired(MainForm.java:213)
at com.griaule.grfingerjava.GrFingerJavaNative.callbackImage(GrFingerJavaNative.java:157)

1 个答案:

答案 0 :(得分:0)

您需要读取BLOB的输入流并将其转换为byte [],如下所示:

InputStream byte_stream = b.getBinaryStream();
byte [] byte_array = new byte [byte_stream.available()];
int bytes_read = byte_stream.read(byte_array);

然后使用这个byte_array创建ImageIcon并像这样设置为JLabel:

使用ImageIO的另一种方式

InputStream in = b.getBinaryStream();
JLabel label = new JLabel(new ImageIcon(ImageIO.read(in)));

希望这会给你正确的方向来解决你的问题