肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 本地剪切板 java java:复制图片到系统剪切板 然后怎么以图片文件的形式粘贴至本机...

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

时间:2019-06-11 17:47:50

相关推荐

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

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

代码列在下边问题是:

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

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

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

DimensionSize=canvas.getSize();

BufferedImageimage=newBufferedImage(Size.width,Size.height,BufferedImage.TYPE_INT_ARGB);

Graphics2Dg2=(Graphics2D)image.getGraphics();

canvas.paint(g2);

g2.dispose();

/*Filefile=newFile("default.png");

try{

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

}catch(Exceptionex){

System.out.println(ex);

}*/

setClipboardImage(image);

publicvoidsetClipboardImage(finalImageimage)

{

Transferabletrans=newTransferable(){

@Override

publicObjectgetTransferData(DataFlavorflavor)

throwsUnsupportedFlavorException,IOException{

//TODOAuto-generatedmethodstub

if(isDataFlavorSupported(flavor))

{

returnimage;

}

thrownewUnsupportedFlavorException(flavor);

}

@Override

publicDataFlavor[]getTransferDataFlavors(){

//TODOAuto-generatedmethodstub

returnnewDataFlavor[]{DataFlavor.imageFlavor};

}

@Override

publicbooleanisDataFlavorSupported(DataFlavorflavor){

//TODOAuto-generatedmethodstub

returnDataFlavor.imageFlavor.equals(flavor);

}

};

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

}

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

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

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

outputstream试试

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

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

搞个问号,然后提示

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

引用:outputstream试试

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

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

搞个问号,然后提示

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

如果觉得《本地剪切板 java java:复制图片到系统剪切板 然后怎么以图片文件的形式粘贴至本机...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。