首页 > 编程语言 > 详细

java 粘贴图片

时间:2015-06-28 17:34:47      阅读:161      评论:0      收藏:0      [点我收藏+]

java swing 程序中如何获取剪切板中的图片呢?
下面是我做的一个java swing 图形界面:
技术分享

右键,出现菜单,点击菜单中的”paste image”就会获取剪切板中的图片

/***
     * 把系统剪切板中的图片黏贴到swing的Label控件中
     */
    public void pasteClipboardImageAction(){
        BufferedImage bufferedimage=ComponentUtil.getClipboardImage(this.frame);

        if(ValueWidget.isNullOrEmpty(bufferedimage)){
            GUIUtil23.alert("系统剪切板中无图片,请先复制图片");
            return;
        }
        image=bufferedimage;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try {//把粘贴过来的图片转为为二进制(字节数组)
            ImageIO.write(bufferedimage, read_qrcode_from_pic_format/*jpg*/, baos);
            QRbytes= baos.toByteArray();
            ComponentUtil.appendResult(resultArea, "粘贴的二维码大小:\t"+QRbytes.length, true);
        } catch (IOException e) {
            e.printStackTrace();
        }

        qrResultLabel.setIcon(new ImageIcon(image));
    }

核心方法:解析剪切板中的内容

public static BufferedImage getClipboardImage(Frame frame) {
        // java.lang.ClassCastException: sun.awt.datatransfer.TransferableProxy cannot be cast to sun.awt.datatransfer.ClipboardTransferable
        Transferable trans=frame.getToolkit().getSystemClipboard().getContents(null);
        BufferedImage image=null;
//      if(trans instanceof ClipboardTransferable){
//      ClipboardTransferable clipboardTrans =(ClipboardTransferable)trans;

        try {
            if (null != trans && trans.isDataFlavorSupported(DataFlavor.imageFlavor)) {   
            Object obj22=trans.getTransferData(DataFlavor.imageFlavor);
            if(!ValueWidget.isNullOrEmpty(obj22)){
                if(obj22 instanceof BufferedImage){
                image=(BufferedImage)obj22;
                }
            }
            }
        } catch (UnsupportedFlavorException e1) {
            e1.printStackTrace();
            GUIUtil23.errorDialog(e1);
        } catch (IOException e1) {
            e1.printStackTrace();
            GUIUtil23.errorDialog(e1);
        }

        return image;
    }

作者: 黄威
博客地址:
CSDN博客主页
itEye博客主页

java 粘贴图片

原文:http://blog.csdn.net/hw1287789687/article/details/46672517

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!