JavaFX 读取剪切板图片并保存图片到本地

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;
}

测试的这些软件都能正常保存

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值