Urgente, guardar imagen en DB Java
Hola expertos, estoy intentando guardar una imagen que tomé con la webcam en un campo de tipo longblob en mysql, no se que estoy haciendo mal, llevo 19 días de googlear y de leer codigos (paginas en todos los idiomas), estudiar el manual de java, sin embargo no encuentro la posible causa y solucion a mi problema.
Este es el fragmento de mi codigo en java:
int NumDoc = Integer.parseInt(Texto1);String formato = "JPEG";
Connection Conec =(Connection) Conexion.iniciaConexion();
if(Foto !=null)
{
try
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write((RenderedImage) Foto, formato, out);
InputStream in = new ByteArrayInputStream(out.toByteArray());
String SqlInsertar = "INSERT INTO Foto_Persona (Fotografia)VALUES(?)";
PreparedStatement Stm = Conec.prepareStatement(SqlInsertar);
Stm.setBinaryStream(1, in);
Stm.execute(SqlInsertar);
Conexion.cerrarConexion(null);
jLabel9.setText("REGISTRO EXITOSO");
}catch(Exception ex){
error = ex.getMessage();
Metodos.mensajeError(null, error);
}
}else {Metodos.mensajeError(null, "No hay archivo de imagen para guardar");}
y este es el error que me arroja java:
sun.awt.image.ToolkitImage cannot be cast java.awt.image.RenderedImage
sospecho que el error radica en que lelavariable Foto almacena una instancia de una imagen de buffer que redimensioné usando otra librería de java y por eso son incompatibles los arrays, mas sin embargo no estoy muy seguro, este es el codigo del que hablo:
//Metodo para capturar la imagen de la webcam
Image img = null; Image Fotico = null;
public void capturarImagen(){
FrameGrabbingControl ControlFG = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
Buffer buffer = ControlFG.grabFrame();
// creamos la imagen awt
BufferToImage imagen = new BufferToImage((VideoFormat)buffer.getFormat());
img = imagen.createImage(buffer);
Fotico = img.getScaledInstance( 170,170,Image.SCALE_AREA_AVERAGING );
}
De antemano le agradezco enormemente por su atencion y pronta respuesta
Este es el fragmento de mi codigo en java:
int NumDoc = Integer.parseInt(Texto1);String formato = "JPEG";
Connection Conec =(Connection) Conexion.iniciaConexion();
if(Foto !=null)
{
try
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageIO.write((RenderedImage) Foto, formato, out);
InputStream in = new ByteArrayInputStream(out.toByteArray());
String SqlInsertar = "INSERT INTO Foto_Persona (Fotografia)VALUES(?)";
PreparedStatement Stm = Conec.prepareStatement(SqlInsertar);
Stm.setBinaryStream(1, in);
Stm.execute(SqlInsertar);
Conexion.cerrarConexion(null);
jLabel9.setText("REGISTRO EXITOSO");
}catch(Exception ex){
error = ex.getMessage();
Metodos.mensajeError(null, error);
}
}else {Metodos.mensajeError(null, "No hay archivo de imagen para guardar");}
y este es el error que me arroja java:
sun.awt.image.ToolkitImage cannot be cast java.awt.image.RenderedImage
sospecho que el error radica en que lelavariable Foto almacena una instancia de una imagen de buffer que redimensioné usando otra librería de java y por eso son incompatibles los arrays, mas sin embargo no estoy muy seguro, este es el codigo del que hablo:
//Metodo para capturar la imagen de la webcam
Image img = null; Image Fotico = null;
public void capturarImagen(){
FrameGrabbingControl ControlFG = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
Buffer buffer = ControlFG.grabFrame();
// creamos la imagen awt
BufferToImage imagen = new BufferToImage((VideoFormat)buffer.getFormat());
img = imagen.createImage(buffer);
Fotico = img.getScaledInstance( 170,170,Image.SCALE_AREA_AVERAGING );
}
De antemano le agradezco enormemente por su atencion y pronta respuesta