我正在開發一個Java程序捕捉僱員圖像在註冊時使用網絡攝像頭。我可以沒有任何問題地獲得照片,並將其保存在C:驅動器中,但是在檢索圖像時,只有部分圖像顯示在標籤上。在保存之前是否有一種重新設定JPEG的方法?或在顯示之前?像收縮它沒有質量損失....圖像大小調整和顯示在JPanel或JLabel沒有質量損失
Thankz很多 Cheerz! :)!
好男人......這裏有: - 我用我用過的方式評論過代碼。
//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");
}
}
也許我可以在節省縮放圖像..所以,我可以檢索縮放後的圖像..
*這是不可能的 「無質量損失縮小它。」各種平滑技術可以部分隱藏圖像調整大小的文物,但降低WxH的分辨率,並且圖像的「質量」必須更低。 –
@AndrewThompson是的,這是真的....質量的下降是好的,但整個圖像沒有得到顯示...迄今爲止,只有縮小的圖像的一部分是我可以獲得.. –
爲了更好地幫助更快,發佈[SSCCE](http://sscce.org/)。也許熱鏈接到[這些圖像](http://pscode.org/media/#image)之一。 –