import com.sun.image.codec.jpeg.*; public void saveFrame(String filename) { BufferedImage img=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); loadPixels(); img.setRGB(0, 0, width, height, g.pixels, 0, width); String extn=filename.substring(filename.lastIndexOf('.')+1).toLowerCase(); if (extn.equals("jpg")) { try{ ByteArrayOutputStream out = new ByteArrayOutputStream(); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); JPEGEncodeParam p = encoder.getDefaultJPEGEncodeParam(img); // set JPEG quality to 50% with baseline optimization p.setQuality(0.5,true); encoder.setJPEGEncodeParam(p); encoder.encode(img); File file = new File(savePath(filename)); FileOutputStream fo = new FileOutputStream(file); out.writeTo(fo); println("saved "+filename); } catch(FileNotFoundException e){ System.out.println(e); } catch(IOException ioe){ System.out.println(ioe); } } else if (extn.equals("png")) { // add here as needed try { javax.imageio.ImageIO.write(img, extn, new File(savePath(filename))); println("saved "+filename); } catch(Exception e) { System.err.println("error while saving as "+extn); e.printStackTrace(); } } else { super.saveFrame(filename); } }