當前位置:才華齋>IT認證>JAVA認證>

java實現縮圖和抓螢幕

JAVA認證 閱讀(1.06W)

在全球範圍內,SUN公司的Java技術培訓和認證不僅是Java開發技術領域最權威的認證,同時也是開發類認證中很重要的一種.以下是小編整理的關於java實現縮圖和抓螢幕,希望大家認真閱讀!

java實現縮圖和抓螢幕

import ainer;

import nsion;

import hics2D;

import e;

import aTracker;

import angle;

import eringHints;

import t;

import kit;

import eredImage;

import eredOutputStream;

import ;

import OutputStream;

import eIO;

import com.sun.image.codec.jpeg.JPEGCodec;

import com.sun.image.codec.jpeg.JPEGEncodeParam;

import com.sun.image.codec.jpeg.JPEGImageEncoder;

/**

*

* 純java API實現圖片處理

*

Title:ImageChangeSize

*

Description:

*

Copyright: Copyright (c) 2010

*

Company:

* @author

* @version 1.0.0

*/

public class ImageChangeSize

{

public static void main ( String [] args )

throws InterruptedException

{

//測試生成縮圖

createThumbnail("c:555.gif", 200, 200, 100, "c:uuuu.jpg");

//測試捕捉螢幕,每隔一秒捕獲一次

String path = "c:screen";

int i = 0;

for ( ;; )

{

i++;

String filepath = path + i + ".jpg";

snatchScreen(filepath);

entThread()p(2000);

}

}

/**

* 處理圖片,改變起大小,可進行縮略和放大

* @param filename 原始檔名稱

* @param thumbWidth 處理後寬度

* @param thumbHeight 處理後高度

* @param quality 品質 最高100,最小0

* @param outFilename 輸出檔名稱

*/

public static void createThumbnail ( String filename, int thumbWidth, int thumbHeight, int quality, String outFilename )

{

Image image = efaultToolkit()mage(filename);

MediaTracker mediaTracker = new MediaTracker(new Container());

mage(image, 0);

try

{

ForID(0);

double thumbRatio = (double) thumbWidth / (double) thumbHeight;

int imageWidth = idth(null);

int imageHeight = eight(null);

double imageRatio = (double) imageWidth / (double) imageHeight;

if ( thumbRatio < imageRatio )

{

thumbHeight = (int) ( thumbWidth / imageRatio );

}

else

{

thumbWidth = (int) ( thumbHeight * imageRatio );

}

BufferedImage thumbImage = new BufferedImage(thumbWidth,

thumbHeight, _INT_RGB);

Graphics2D graphics2D = teGraphics();

enderingHint(_INTERPOLATION, E_INTERPOLATION_BILINEAR);

Image(image, 0, 0, thumbWidth, thumbHeight, null);

BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);

quality = (0, (quality, 100));

uality((float) quality / 100.0f, false);

encoder.setJPEGEncodeParam(param);

de(thumbImage);

e();

}

catch ( Exception e )

{

tStackTrace();

}

}

/**

* 抓取電腦螢幕

* @param path

*/

public static void snatchScreen ( String path )

{

Robot robot;

try

{

robot = new Robot();

Dimension d = efaultToolkit()creenSize();

Rectangle rect = new Rectangle(0, 0, h, ht);

BufferedImage image = teScreenCapture(rect);

e(image, "jpg", new File(path));

}

catch ( Exception e )

{

tln("Failed to snatch screen ... ");

tStackTrace();

}

}

}