Estoy desarrollando un programa java para capturar imágenes de los empleados en el momento del registro utilizando una cámara web. Puedo obtener la imagen sin ningún problema y guardarla en mi unidad C: pero al recuperar la imagen solo se muestra una parte de la imagen en la etiqueta. ¿Hay alguna manera de cambiar el tamaño del JPEG antes de guardarlo? o antes de mostrarlo? como encogiéndolo sin una pérdida de calidad ...Redimensionamiento y visualización de imágenes en un JPanel o un JLabel sin pérdida de calidad
Thankz mucho Cheerz! :)!
okay chicos ... aquí va: - He comentado el código en la forma en que los he usado.
//This method will capture the image from the interface and save it under the unique employee ID
public String captureImage(int picId){
FrameGrabbingControl ControlFG = (FrameGrabbingControl)
broadcast.getControl("javax.media.control.FrameGrabbingControl");
Buffer buffer = ControlFG.grabFrame();
BufferToImage image = new BufferToImage((VideoFormat)buffer.getFormat());
img = image.createImage(buffer);
path="c:\\employee"+picId+".jpg";
saveJPG(img,path);//method will save the image
return path;
}
public void saveJPG(Image img, String s){***//method will save the image***
System.out.println(s);
BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null),
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
g2.drawImage(img,null,null);
FileOutputStream out = null;
try{
out = new FileOutputStream(s);
}
catch (java.io.FileNotFoundException io){
System.out.println("File Not Found");
}
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
param.setQuality(0.5f,false);
encoder.setJPEGEncodeParam(param);
try
{
encoder.encode(bi);
out.close();
}
catch (java.io.IOException io)
{
System.out.println("IOException");
}
}
tal vez pueda escalar la imagen mientras que el ahorro .. para que pueda recuperar la imagen escalada ..
* "encogimiento sin una pérdida de calidad" * Eso no es posible. Varias técnicas de suavizado pueden ocultar en parte los artefactos del tamaño de la imagen, pero reducen la resolución en WxH y la "calidad" de la imagen debe ser menor. –
@AndrewThompson Sí, eso es cierto ... una caída en la calidad está bien, pero no se muestra toda la imagen ... hasta ahora, solo una parte de la imagen encogida fue todo lo que pude obtener .. –
Para una mejor ayuda antes, publíquela un [SSCCE] (http://sscce.org/). Quizás un enlace directo a una de [estas imágenes] (http://pscode.org/media/#image). –