Created
March 12, 2015 07:18
-
-
Save zhiyue/8b87f451f1e6122a7a7f to your computer and use it in GitHub Desktop.
java 剪切板
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package com; | |
| import java.awt.Graphics2D; | |
| import java.awt.Image; | |
| import java.awt.Toolkit; | |
| import java.awt.datatransfer.Clipboard; | |
| import java.awt.datatransfer.DataFlavor; | |
| import java.awt.datatransfer.StringSelection; | |
| import java.awt.datatransfer.Transferable; | |
| import java.awt.datatransfer.UnsupportedFlavorException; | |
| import java.awt.image.BufferedImage; | |
| import java.awt.image.RenderedImage; | |
| import java.io.File; | |
| import java.io.IOException; | |
| import javax.imageio.ImageIO; | |
| public class Test { | |
| public static void main(String[] args) { | |
| try { | |
| //获取粘贴板图片 | |
| Image image = Test.getImageFromClipboard(); | |
| File file= new File("D:\\a.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((RenderedImage)bufferedImage, "jpg", file); | |
| ImageIO.write((RenderedImage)bufferedImage, "png", file); | |
| } catch (Exception e) { | |
| // TODO Auto-generated catch block | |
| e.printStackTrace(); | |
| } | |
| } | |
| /** | |
| * 从剪切板获得文字。 | |
| */ | |
| public static String getSysClipboardText() { | |
| String ret = ""; | |
| Clipboard sysClip = Toolkit.getDefaultToolkit().getSystemClipboard(); | |
| // 获取剪切板中的内容 | |
| Transferable clipTf = sysClip.getContents(null); | |
| if (clipTf != null) { | |
| // 检查内容是否是文本类型 | |
| if (clipTf.isDataFlavorSupported(DataFlavor.stringFlavor)) { | |
| try { | |
| ret = (String) clipTf | |
| .getTransferData(DataFlavor.stringFlavor); | |
| } catch (Exception e) { | |
| e.printStackTrace(); | |
| } | |
| } | |
| } | |
| return ret; | |
| } | |
| /** | |
| * 将字符串复制到剪切板。 | |
| */ | |
| public static void setSysClipboardText(String writeMe) { | |
| Clipboard clip = Toolkit.getDefaultToolkit().getSystemClipboard(); | |
| Transferable tText = new StringSelection(writeMe); | |
| clip.setContents(tText, null); | |
| } | |
| /** | |
| * 从剪切板获得图片。 | |
| */ | |
| 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; | |
| } | |
| /** | |
| * 复制图片到剪切板。 | |
| */ | |
| public static void setClipboardImage(final Image image) { | |
| Transferable trans = new Transferable() { | |
| public DataFlavor[] getTransferDataFlavors() { | |
| return new DataFlavor[] { DataFlavor.imageFlavor }; | |
| } | |
| public boolean isDataFlavorSupported(DataFlavor flavor) { | |
| return DataFlavor.imageFlavor.equals(flavor); | |
| } | |
| public Object getTransferData(DataFlavor flavor) | |
| throws UnsupportedFlavorException, IOException { | |
| if (isDataFlavorSupported(flavor)) | |
| return image; | |
| throw new UnsupportedFlavorException(flavor); | |
| } | |
| }; | |
| Toolkit.getDefaultToolkit().getSystemClipboard().setContents(trans, | |
| null); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment