JavaFX 讀取剪切板圖片並保存圖片到本地
使用 JavaFX Clipboard API
Clipboard clipboard = Clipboard.getSystemClipboard();
Image image = clipboard.getImage();
BufferedImage bImage = SwingFXUtils.fromFXImage(image, null);
File file = new File("D:/image.png");
ImageIO.write(bImage, "png", file);
QQ 微信 有道雲筆記 win10自帶截圖等 保存後的圖片正常
Snipaste FastStone 截圖, 看圖工具中複製圖片, 保存後的圖片是透明的, 沒有顏色
使用 Awt Clipboard API
Image image = getImageFromClipboard();
File file = new File("D:/image.png");
//轉成jpg
//BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB);
//轉成png
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics2D g = bufferedImage.createGraphics();
g.drawImage(image, null, null);
//ImageIO.write(bufferedImage, "jpg", file);
ImageIO.write(bufferedImage, "png", file);
public static Image getImageFromClipboard() throws Exception {
Clipboard sysc = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable cc = sysc.getContents(null);
if (cc == null)
return null;
else if (cc.isDataFlavorSupported(DataFlavor.imageFlavor))
return (Image) cc.getTransferData(DataFlavor.imageFlavor);
return null;
}
測試的這些軟件都能正常保存