title: Image resizing and displaying in a JPanel or a JLabel without loss of quality
body: <p>I'm developing a java program to capture employee images at the time of registration using a webcam. I can obtain the picture without any problem, and save it in my C: drive but upon retrieval of the image only a part of the image is displayed on the label. Is there a way of re sizing the JPEG before saving it? or before displaying it? like shrinking it without a quality loss....     </p>
  
  <p>Thankz a lot 
  Cheerz!
  :)!</p>
  
  <p>okay guys... here goes:- I have commented the code in the way I have used them.</p>
  
  <pre><code>//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");
      }
      }
  </code></pre>
  
  <p>maybe I can scale the image while saving.. so that I can retrieve the scaled image..   </p>