| ||||
Respuesta: Orientacion sobre cargar imagen de campo blob en jpane PODRIAS REVISAR ESTO: http://jc-mouse.blogspot.com/2009/12...mysql-con.html |
| ||||
Respuesta: Orientacion sobre cargar imagen de campo blob en jpane gracias liloo , debido a que no podia entender o adaptar el codigo a el jpane tuve que adaptarlo a un jlabel posteo el codigo por si a alguien le sirve tambien , ojo al obtener la imagen esta no se redimensiona por lo cual no se adaptara al jlabel , pero eso lo solucione con otro codigo que pondre al final declaro estos dos valores globales Image data; String Id; primero llamo a la funcion cargar imagen en el evento click de mi data grid pasando el valor al string id que tengo declarado en global a uno , ahy mismo recibo el return de la imagen y establesco el icon resultante a mi jlabel Id = "1"; Image dtCat = CargarImagen(); Icon icon = new ImageIcon(dtCat); lblImagen.setIcon(icon); a continuacion pongo las funciones necesarias public Image CargarImagen(){ ConexionMySQL Mysql = new ConexionMySQL(); Connection cn = Mysql.Conectar(); try{ PreparedStatement pstImagen = cn.prepareStatement("Select IMAGEN as IMAGEN from IMAGENESART where ID ='" + Id + "'"); ResultSet rsImagen = pstImagen.executeQuery(); int i = 0; while(rsImagen.next()){ byte[] b = rsImagen.getBytes("IMAGEN"); data = ConvertirImagen(b); i++; } rsImagen.close(); } catch(IOException IOex){ JOptionPane.showMessageDialog(null,IOex); } catch(SQLException ex){ JOptionPane.showMessageDialog(null,ex); } return data; } en estas hago una consulta a la base de datos y a traves del resultset obtengo el campo blob en bytes y paso el arreglo a una imagen declarada como data que pasa a la funcion convertirimagen public Image ConvertirImagen(byte[] bytes)throws IOException{ ByteArrayInputStream bis = new ByteArrayInputStream(bytes); Iterator readers = ImageIO.getImageReadersByFormatName("jpeg"); ImageReader reader = (ImageReader) readers.next(); Object source = bis; // File or InputStream ImageInputStream iis = ImageIO.createImageInputStream(source); reader.setInput(iis, true); ImageReadParam param = reader.getDefaultReadParam(); return reader.read(0, param); } y el resultado retorna y prosigue a establecer la imagen en el jlabel , listoooo ahora si quieren redimensionar la imagen del jlabel a la medida paso el siguiente codigo sustituyendo esto Id = "1"; Image dtCat = CargarImagen(); Icon icon = new ImageIcon(dtCat); lblImagen.setIcon(icon); por esto Id = "1"; Image dtCat = CargarImagen(); Icon icon = new ImageIcon(dtCat); Image img = icon.getImage(); Image newimg = img.getScaledInstance(291,226,java.awt.Image.SCALE _SMOOTH); ImageIcon newIcon = new ImageIcon(newimg); lblImagen.setIcon(newIcon); esto me retorna la imagen escalada en una dimension de 291 x 226 . las medidas pueden ser ajustadas a la necesidad del jlabel suerte y espero le sea de ayuda a alguien mas , se agradece karma x cierto jaja salu2 |
Etiquetas: |