public static void saveJPG(Image img, String 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"); } }
public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; AlphaComposite ac, ac2 = null; ac2 = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f); for (int i = 0; i < imagenum_now.length; i++) { for (int j = 0; j < imagenum_now[i].length; j++) { // System.out.println("x: " + i + ", y: " + j); g2.setComposite(ac2); if (imagenum_now[i][j] != -1) { g2.drawImage( // images.get(imagenum_now[i][j]) // getImage(images.get(imagenum_now[i][j])), imagenum_now2[i][j], i * size_x, j * size_y, size_x, size_y, this); } else { // No picture found, ignoring // System.out.println("imagenum_now["+i+"]["+j+"] = -1"); } try { ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, fade[i][j]); } catch (IllegalArgumentException e) { ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f); } g2.setComposite(ac); if (imagenum_next[i][j] != -1) { g2.drawImage( // images.get(imagenum_next[i][j]), // getImage(images.get(imagenum_next[i][j])), imagenum_next2[i][j], i * size_x, j * size_y, size_x, size_y, this); } else { // No picture found, ignoring // System.out.println("imagenum_now["+i+"]["+j+"] = -1"); } /* if(i == 0 && j == 0) System.out.println("" + imagenum_now[i][j] + " => " + imagenum_next[i][j] + ", fade: "+fade[i][j]);; */ // Red border if the image is new if (number_of_frames_redborder != -1 && (images_nevershown.contains((Integer) imagenum_next[i][j]) || images_nevershown.contains((Integer) imagenum_now[i][j]))) { g2.setComposite(ac2); g2.setColor(color_redborder); int bordertime = redborder[i][j]; if (bordertime > 0) { // Draw border g2.drawRect(i * size_x, j * size_y, size_x - 1, size_y - 1); if (bordertime > number_of_frames_redborder) { // No more border redborder[i][j] = -number_of_frames_redborder; } } redborder[i][j]++; } } } }