无法在数据库(mysql)中获取图像

yh2wf1be  于 2021-06-24  发布在  Mysql
关注(0)|答案(0)|浏览(243)

那时,我通过摄像头捕获库成功地操纵了我的摄像头。这是我的密码:

  1. public void capture() {
  2. wc.setViewSize(WebcamResolution.QVGA.getSize());
  3. WebcamPanel wp = new WebcamPanel(wc);
  4. wp.setMirrored(true);
  5. JPanel jp = new JPanel();
  6. tp.setSize(jp.getWidth(), jp.getHeight());
  7. tp.addTab("", wp);
  8. tp.getParent().revalidate();
  9. }

碰巧我想将捕获的图像保存到我的数据库(mysql)中,好的是我能够成功地保存它。使用此代码:

  1. public void save() {
  2. BufferedImage bi = wc.getImage();
  3. try {
  4. ByteArrayOutputStream bimg = new ByteArrayOutputStream();
  5. ImageIO.write(bi, "JPG", bimg);
  6. byte[] imgb = bimg.toByteArray();
  7. try {
  8. Blob bis = conn.createBlob();
  9. bis.setBytes(1, imgb);
  10. String query = "insert into tbl_img (imgid,clientimg) values ('" + but.getText() + "' , '" + bis + "')";
  11. psmt = conn.prepareStatement(query);
  12. psmt.executeUpdate();
  13. JOptionPane.showMessageDialog(null, "Success", "Capture", JOptionPane.NO_OPTION);
  14. } catch (Exception e) {
  15. e.printStackTrace();
  16. }
  17. } catch (IOException e) {
  18. JOptionPane.showMessageDialog(null, e);
  19. }
  20. }

从bufferedimage中,我将其转换为bytearray以适应mysql blob标志。与插入数据相反,我希望将其作为图像检索回来,并通过jframe直接将其放入jlabel中。我们应该说不占用硬盘空间。
我有一个检索图像的代码,但结果似乎只是一个白色的jframe。

  1. public void open() {
  2. try {
  3. stmt = conn.createStatement();
  4. String quer = " select clientimg from tbl_img where imgid='" + open.getText() + "' ";
  5. ResultSet rs = stmt.executeQuery(quer);
  6. while (rs.next()) {
  7. byte[] inbytes = rs.getBytes("clientimg");
  8. Image img = Toolkit.getDefaultToolkit().createImage(inbytes);
  9. ImageIcon ico = new ImageIcon(img);
  10. JFrame jf = new JFrame("Viewer");
  11. JLabel jl = new JLabel();
  12. jl.setSize(ico.getIconWidth(), ico.getIconHeight());
  13. jf.setSize(ico.getIconWidth(), ico.getIconHeight());
  14. jl.setIcon(ico);
  15. jf.add(jl);
  16. jf.setVisible(true);
  17. }
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. }
  21. }

有没有其他方法可以将blob恢复到图像中?如果有,请随意修改代码,让我更清楚地理解。我试过我认为所有可能的方式从谷歌。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题