Hola, con el post anterior expliqué como guardar una imagen en una Base de datos Mysql, pues resulta que un compañero me planteó la pregunta ¿y cómo la recupero desde la BD?, recordé que para esta faena me tomé un poco de tiempo.
Así que aquí coloco el código, que permite recuperar una imagen desde una base de datos Mysql.
Éste método recoge la imagen desde la BD y devuelve la imagen lista para usar.
import java.awt.Image; import java.io.IOException; import java.sql.Blob; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;
public Image abrirImagen() throws SQLException, IOException { Image rpta=null; String sql = "SELECT * FROM imagen limit 1"; //En este ejemplo solo recupero la primera Imagen java.sql.Statement stmt = conexion.createStatement(); ResultSet results = stmt.executeQuery(sql); Blob imagen=null; while(results.next()) Blob imagen = results.getBlob("Imagen"); rpta= javax.imageio.ImageIO.read(imagen.getBinaryStream()); //Esta parte es clave, donde se convierte a imagen return rpta; }Espero haber ayudado con este post, y nos vemos. Saludos a todos.
Actualización: Video demostrativo
esta muy bueno el ejemplo, pero podria subir el codigo del programa que sale en el video? el que pinta la imagen en el panel
Buenas Cesar, o el que escribio este programa muy bueno, solo que para desplegar la imagen en la aplicacion tengo problemas, porque lo estoy haciendo en un metodo privado y con try y catch y se me genera errores, he intentado muchas formas pero no encuentro la solucion, te agradeceria que me contestas, alguien gracias
y luego como muestro la imagen o que show con ella?
Podrian subir el código del ejemplo????????????????????????????
oye se puede usar el mismo código para un archivo pdf???
Si
Hola..
hee muy buena tu informacion muchas gracias era lo que estaba buscando
un favor me podrian pasar el proyecto de su video ..
de antemano Gracias
sta bueno. se puede hacer esto en JSP? yo quiero que se guarde en un directorio no en BD. pero desde un formulario.. como seria.. Gracias
Hola
tu ejemplo esta muy bueno
pero como seria en un celular en J2ME
Gracias
Y como le hago para mostrarlo en el label????
try {
ResultSet res = ldao.getImagen(equipo);
if (res.next()) {
Image i;
Blob blob = res.getBlob(«imagen»);
i = javax.imageio.ImageIO.read(blob.getBinaryStream());
ImageIcon image = new ImageIcon(i);
image = new ImageIcon(image.getImage().getScaledInstance(
this.lblImagen.getWidth(),
this.lblImagen.getHeight(),
Image.SCALE_DEFAULT));
lblImagen.setIcon(image);
}
Que gran ejemplo, mucho tiempo buscandolo y lo encontreee, gracias
Como se podria hacer para que una vez que has cargado la imagen en sql y ya la visualizas la puedas ahora descargar, ya la tengo en selección por medio del siguiente codigo.
try{
String busca_reg=»SELECT * FROM base WHERE campo=»+variable.getText()+»‘»;
Statement st=cn.createStatement();
ResultSet rs=st.executeQuery(busca_reg);
rs.next();
Image der=null;
Blob blob2=rs.getBlob(«imagen»);
der=javax.imageio.ImageIO.read(blob2.getBinaryStream());
der = der.getScaledInstance(255, 190, Image.SCALE_DEFAULT);
ImageIcon image2=new ImageIcon(der);
lbl_img.setIcon(image2);
vimg_carga.setVisible(true);
vimg_carga.setText(timagen);
}catch (Exception ex) {
JOptionPane.showMessageDialog(null,»Error «+ex);
}
Ahora que ya la he elegido deseo que por medio de un boton poderla descargar a un archivo.jpg en otro equipo pc
Saludos