首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

截屏步骤

2012-12-20 
截屏方法1.SWT中截屏很简单,可以直接用Display来做,如下:?private Image getScreenImage() {GC gc new G

截屏方法

1.SWT中截屏

很简单,可以直接用Display来做,如下:

?

private Image getScreenImage() {GC gc = new GC(getDisplay());Image image = new Image(getDisplay(), getDisplay().getBounds());gc.copyArea(image, 0, 0);gc.dispose();return image;}

?

?可以想象display代表了整个屏,然后把它转存到一个Image上即可。

?

2.Swing中截屏

Swing中截屏也很简单,直接用Robot类就可以实现,如下:

?

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();BufferedImage capture = new Robot().createScreenCapture(new Rectangle(new Point(0, 0), screenSize));

?

3.转换

以前有篇文章讨论过,其实这两种Image之间要进行转换也是很简单的。

?

Swing Image到SWT Image:

               BufferedImage capture = ....; //Swing Image                               ByteArrayOutputStream os = new ByteArrayOutputStream();ImageIO.write(capture, "png", os);byte[] b = os.toByteArray();ByteArrayInputStream is = new ByteArrayInputStream(b);final Image screenImage = new Image(display, is);  //SWT Imageis.close();os.close();

?

SWT Image到Swing Image:

Image image = ...; //SWT ImageByteArrayOutputStream os = new ByteArrayOutputStream();ImageLoader imageLoader = new ImageLoader();imageLoader.data = new ImageData[]{image.getImageData()};imageLoader.save(os, SWT.IMAGE_PNG);byte[] byteArray = os.toByteArray();ImageIcon imageIcon = new ImageIcon(byteArray);    //Swing Image

?

思路是一样的,就是通过中间存储字节流来进行转换

热点排行