天天看點

java實作截屏功能

<code>import</code> <code>java.awt.Dimension;</code>

<code>import</code> <code>java.awt.Rectangle;</code>

<code>import</code> <code>java.awt.Robot;</code>

<code>import</code> <code>java.awt.Toolkit;</code>

<code>import</code> <code>java.awt.image.BufferedImage;</code>

<code>import</code> <code>java.io.File;</code>

<code>import</code> <code>javax.imageio.ImageIO;</code>

<code>/*******************************************************************</code>

<code>* 該JavaBean可以直接在其他Java應用程式中調用,實作螢幕的"拍照"</code>

<code>* This JavaBean is used to snapshot the GUI in a</code>

<code>* Java application! You can embeded</code>

<code>* it in to your java application source code, and us</code>

<code>* it to snapshot the right GUI of the application</code>

<code>* @see javax.ImageIO</code>

<code>* @author liluqun ([email protected])</code>

<code>* @version 1.0</code>

<code>*</code>

<code>*****************************************************/</code>

<code>public</code> <code>class</code> <code>GuiCamera</code>

<code>{</code>

<code>private</code> <code>String fileName; </code><code>//檔案的字首</code>

<code>private</code> <code>String defaultName = </code><code>"GuiCamera"</code><code>;</code>

<code>static</code> <code>int</code> <code>serialNum=</code><code>0</code><code>;</code>

<code>private</code> <code>String imageFormat; </code><code>//圖像檔案的格式</code>

<code>private</code> <code>String defaultImageFormat=</code><code>"png"</code><code>;</code>

<code>Dimension d = Toolkit.getDefaultToolkit().getScreenSize();</code>

<code>/****************************************************************</code>

<code>* 預設的檔案字首為GuiCamera,檔案格式為PNG格式</code>

<code>* The default construct will use the default</code>

<code>* Image file surname "GuiCamera",</code>

<code>* and default image format "png"</code>

<code>****************************************************************/</code>

<code>public</code> <code>GuiCamera() {</code>

<code>fileName = defaultName;</code>

<code>imageFormat=defaultImageFormat;</code>

<code>}</code>

<code>* @param s the surname of the snapshot file</code>

<code>* @param format the format of the  image file,</code>

<code>* it can be "jpg" or "png"</code>

<code>* 本構造支援JPG和PNG檔案的存儲</code>

<code>public</code> <code>GuiCamera(String s,String format) {</code>

<code>fileName = s;</code>

<code>imageFormat=format;</code>

<code>* 對螢幕進行拍照</code>

<code>* snapShot the Gui once</code>

<code>public</code> <code>void</code> <code>snapShot() {</code>

<code>try</code> <code>{</code>

<code>//拷貝螢幕到一個BufferedImage對象screenshot</code>

<code>BufferedImage screenshot = (</code><code>new</code> <code>Robot()).createScreenCapture(</code><code>new</code>

<code>Rectangle(</code><code>0</code><code>, </code><code>0</code><code>, (</code><code>int</code><code>) d.getWidth(), (</code><code>int</code><code>) d.getHeight()));</code>

<code>serialNum++;</code>

<code>//根據檔案字首變量和檔案格式變量,自動生成檔案名</code>

<code>String name=fileName+String.valueOf(serialNum)+</code><code>"."</code><code>+imageFormat;</code>

<code>File f = </code><code>new</code> <code>File(name);</code>

<code>System.out.print(</code><code>"Save File "</code><code>+name);</code>

<code>//将screenshot對象寫入圖像檔案</code>

<code>ImageIO.write(screenshot, imageFormat, f);</code>

<code>System.out.print(</code><code>"..Finished!\n"</code><code>);</code>

<code>catch</code> <code>(Exception ex) {</code>

<code>System.out.println(ex);</code>

<code>public</code> <code>static</code> <code>void</code> <code>main(String[] args)</code>

<code>GuiCamera cam= </code><code>new</code> <code>GuiCamera(</code><code>"d:\\Hello"</code><code>, </code><code>"png"</code><code>);</code><code>//</code>

<code>cam.snapShot();</code>

本文轉自 夢朝思夕 51CTO部落格,原文連結:http://blog.51cto.com/qiangmzsx/1304580