java读取粘贴板内容——将图片转成png或者jpg格式

原创 2013年12月03日 14:25:40
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);
	}
}


 

版权声明:本文为博主牟云飞原创文章,未经博主允许不得转载。

Java中图片文件的复制

1、字节输出流 OutputStream类定义 public abstract class OutputStream extends Object implements Closeable, Flus...
  • suwu150
  • suwu150
  • 2016年05月24日 13:49
  • 6107

[疯狂Java]AWT剪切板:图像传递

1. 自己实现传递的图像的Transferable类:     1) JDK只给Transferable接口提供了StringSelection的实现类(即JDK只默认实现了文本传递),但没有提供图像...
  • Lirx_Tech
  • Lirx_Tech
  • 2016年03月14日 14:30
  • 643

如何用java程序拷贝出一个文件夹下的所有图片

注:本程序中没有考虑异常的处理. 写程序最好的方法就是先分析功能,然后把功能细化,把思路写下来,跟着思路去写,在写的时候突然把想到的也写进去,不断完善方法中的内容. 思路分析:主方法: 1.写一...
  • u012661010
  • u012661010
  • 2017年01月17日 22:44
  • 516

拷贝图片Java的代码

使用java拷贝图片
  • longgejia
  • longgejia
  • 2017年02月10日 15:26
  • 217

Java把图片复制到剪切板上

这里只能操作图片  其他类型的资源在这里不适应 /** * 把转入的图片资源设置到剪切板上 * @param image 可以是image 或者是BufferedImage类型 */ ...
  • u010982856
  • u010982856
  • 2015年03月30日 10:18
  • 1018

Java 访问(复制,粘贴)剪切板

以下共有4个函数分别是: 1.从剪切板获得文字。 2.将字符串复制到剪切板。 3.从剪切板获得图片。 4.复制图片到剪切板。   /** * 从剪切板获得文字。 */ pu...
  • AMinfo
  • AMinfo
  • 2012年08月12日 21:57
  • 10594

用java语言(文件和文件流知识点)实现图片的拷贝,从c盘拷贝到d盘

  • 2017年07月03日 19:31
  • 1KB
  • 下载

Java实现文本、图片、视频的拷贝(从一个地方拷贝到另一个地方)

Java实现文本、图片、视频的拷贝(从一个地方拷贝到另一个地方) java文件读写...
  • xyaxx
  • xyaxx
  • 2016年12月12日 21:15
  • 1035

JAVA 图片格式检查方法

一、通常情况下,验证一个文件是否图片,可以通过以下三种方式: 1)、判断文件的扩展名是否是要求的图片扩展名 这种判断是用得比较多的一种方式,不过这种方式非常的不妥,别人稍微的把一个不是图片的文件的...
  • FX_SKY
  • FX_SKY
  • 2014年09月01日 11:05
  • 3196

java中图片格式转换

package test; import java.awt.Graphics; import java.awt.Image; import java.awt.image.BufferedImage; ...
  • handi3
  • handi3
  • 2016年03月18日 17:07
  • 1242
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java读取粘贴板内容——将图片转成png或者jpg格式
举报原因:
原因补充:

(最多只允许输入30个字)