本地剪切板 java,java:复制图片到系统剪切板 然后怎么以图片文件的形式粘贴至本机...

java:复制图片到系统剪切板 然后如何以图片文件的形式粘贴至本机?

本帖最后由 u013531487 于 2014-07-16 22:56:44 编辑

代码列在下边 问题是:

我先获取了待保存的图片数据,保存在BufferedImage image中,然后调用setClipboardImage()保存到系统剪切板中,那么再如何将剪切板中的图片数据以png或JPG形式保存到本机上(D盘)呢?

是不是在保存到剪切板之前就要形成文件,如果是这样 这个png文件又该如何保存到本机上呢?

由于这里是做的applet开发 不能直接访问本机的文件系统 所以只能先将图片数据保存到剪切板,再尝试保存到本机文件中

Dimension Size = canvas.getSize();

BufferedImage image = new BufferedImage(Size.width, Size.height, BufferedImage.TYPE_INT_ARGB);

Graphics2D g2 = (Graphics2D) image.getGraphics();

canvas.paint(g2);

g2.dispose();

/*File file = new File("default.png");

try{

ImageIO.write(image, "png", file);

}catch (Exception ex){

System.out.println(ex);

}*/

setClipboardImage(image);

public void setClipboardImage(final Image image)

{

Transferable trans = new Transferable(){

@Override

public Object getTransferData(DataFlavor flavor)

throws UnsupportedFlavorException, IOException {

// TODO Auto-generated method stub

if (isDataFlavorSupported(flavor))

{

return image;

}

throw new UnsupportedFlavorException(flavor);

}

@Override

public DataFlavor[] getTransferDataFlavors() {

// TODO Auto-generated method stub

return new DataFlavor[] { DataFlavor.imageFlavor };

}

@Override

public boolean isDataFlavorSupported(DataFlavor flavor) {

// TODO Auto-generated method stub

return DataFlavor.imageFlavor.equals(flavor);

}

};

getToolkit().getSystemClipboard().setContents(trans, null);

}

------解决方案--------------------

既然不能访问本地文件系统,那就应该让用户来操作啊,比如告诉用户自行将剪切板里的图片保存到本地,或者提示用户自行点击复制图片

------解决方案--------------------

outputstream 试试

操作文件系统杀毒软件这里有麻烦

还是提示用户自己操作比较好

搞个问号,然后提示

------解决方案--------------------

引用:outputstream 试试

操作文件系统杀毒软件这里有麻烦

还是提示用户自己操作比较好

搞个问号,然后提示

这个有感触,杀毒软件确实有这毛病,楼主还是重新设计下思路为好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值