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);
	}
}


 

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

相关文章推荐

png图片的读取

一、得到图片中的数据 1、现有一副png图片,提取其中某个区域的内容,保存成另外的图片。 处理后云图如下,黑色的表示云。 现在要得到河南省的的,比如区域的范围是(270,270)到(390,39...

Png文件的流读取写出

package lab.sodino.PngTest;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.F...
  • sodino
  • sodino
  • 2010年03月08日 13:42
  • 2317

JAVA学习(十五)__java读取图片的几种方法

1.  MyCellRenderer.class.getClassLoader().getResource("icon/myfiles.png"); 其中MyCellRenderer是该类的名字,"i...

从剪切板粘贴图片上传

一个需求:让用户使用剪切板来粘贴图片(而不是将图片保存到本地,然后再选取文件上传)fakepath是什么鬼...

Java中对图片文件的类型的获取

  系统中某些图片可能已经被修改了后缀名,所以不能只是对后缀名进行判断。下面的示例代码就是如何判断一个图片的具体类型的。    public static void main(String[] arg...
  • arui319
  • arui319
  • 2007年11月28日 10:22
  • 7255

使用JAVA如何对图片进行格式检查以及安全检查处理

本文出自冯立彬的博客,原地址:http://www.fenglibin.com/use_java_to_check_images_type_and_security.html 一、通常情况下,验证一个...

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

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

【文件上传】uploadify插件配合java的使用,可以图片,按照步骤可以复制粘贴直接运行,2017年

一点说明:此代码没有对重复的图片进行处理,也就是说,同一张图片选择多次就可以传入多次,如果单独上传图片的要注意这一点;因为这个程序本身是上传文件用的,重复的文件理论上是可以上传的,没什么毛病,几个点击...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

java 通过流的方式读取本地图片并显示在jsp 页面上(类型以jpg、png等结尾的图片)

File filePic = new File(path+"1-ab1.png");                     if(filePic.exists()){                ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java读取粘贴板内容——将图片转成png或者jpg格式
举报原因:
原因补充:

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