我必须在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)
答案 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)));
希望这会给你正确的方向来解决你的问题