| privatevoidcreateThumbnail(String filename, 
intthumbWidth, 
intthumbHeight, 
intquality, String outFilename)  
         throwsInterruptedException, FileNotFoundException, IOException  
     {  
         
         Image image = Toolkit.getDefaultToolkit().getImage(filename);  
         MediaTracker mediaTracker = 
newMediaTracker(newContainer());  
         mediaTracker.addImage(image, 
);  
         mediaTracker.waitForID();  
         
           
         doublethumbRatio = (double)thumbWidth / (double)thumbHeight;  
         intimageWidth = image.getWidth(null);  
         intimageHeight = image.getHeight(null);  
         doubleimageRatio = (double)imageWidth / (double)imageHeight;  
         if(thumbRatio < imageRatio) {  
             thumbHeight = (int)(thumbWidth / imageRatio);  
         } 
else{  
             thumbWidth = (int)(thumbHeight * imageRatio);  
         }  
           
         
         BufferedImage thumbImage = 
newBufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);  
         Graphics2D graphics2D = thumbImage.createGraphics();  
         graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);  
         graphics2D.drawImage(image, 
, 
, thumbWidth, thumbHeight, 
null);  
           
         BufferedOutputStream out = 
newBufferedOutputStream(newFileOutputStream(outFilename));  
         JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
         JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);  
         quality = Math.max(, Math.min(quality, 
100));  
         param.setQuality((float)quality / 
100.0f, 
false);  
         encoder.setJPEGEncodeParam(param);  
         encoder.encode(thumbImage);  
         out.close();  
     }
 |