EUREKA!Originariamente inviato da andbin
...
Quindi non puoi passare banalmente un Image al write(). La soluzione è creare un BufferedImage, scriverci dentro la immagine e quindi passare al write() il BufferedImage.
questa classe funziona
secondo te è il modo migliore o c'è di meglio?codice:import java.awt.*; import java.awt.datatransfer.*; import java.awt.image.*; import java.io.*; import javax.imageio.*; public class Clipboard2Img { public static void main(String[] args) { try { Clipboard clipBoard = Toolkit.getDefaultToolkit().getSystemClipboard(); Transferable t = clipBoard.getContents(null); Image image = (Image) t.getTransferData(DataFlavor.imageFlavor); int width = image.getWidth(null); int height = image.getHeight(null); //System.out.println("Immagine lunga "+ width+ " e larga "+ height+ " pixels"); BufferedImage bi=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g2d = bi.createGraphics(); g2d.drawImage(image, null,null); // Saves the image to a file in JPG format. ImageIO.write(bi , "jpg", new File("img.jpg")); } catch (Exception e) { System.err.println(e); } } }
in ogni caso GRAZIE 1000

Rispondi quotando