知识大全 java实现缩略图和抓屏幕
Posted 知
篇首语:没有失败,只有暂时停止成功。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 java实现缩略图和抓屏幕相关的知识,希望对你有一定的参考价值。
import java awt Container;
import java awt Dimension;
import java awt Graphics D;
import java awt Image;
import java awt MediaTracker;
import java awt Rectangle;
import java awt RenderingHints;
import java awt Robot;
import java awt Toolkit;
import java awt image BufferedImage;
import java io BufferedOutputStream;
import java io File;
import java io FileOutputStream;
import javax imageio ImageIO;
import dec jpeg JPEGCodec;
import dec jpeg JPEGEncodeParam;
import dec jpeg JPEGImageEncoder;
/**
*
* 纯java API实现图片处理
* <p>Title:ImageChangeSize</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) </p>
* <p>Company: </p>
* @author
* @version
*/
public class ImageChangeSize
public static void main ( String [] args )
throws InterruptedException
//测试生成缩略图
createThumbnail( c:\\\\ gif c:\\\\uuuu jpg );
//测试捕捉屏幕 每隔一秒捕获一次
String path = c:\\\\screen\\\\ ;
int i = ;
for ( ;; )
i++;
String filepath = path + i + jpg ;
snatchScreen(filepath);
Thread currentThread() sleep( );
/**
* 处理图片 改变起大小 可进行缩略和放大
* @param filename 源文件名称
* @param thumbWidth 处理后宽度
* @param thumbHeight 处理后高度
* @param quality 品质 最高 最小
* @param outFilename 输出文件名称
*/
public static void createThumbnail ( String filename int thumbWidth int thumbHeight int quality String outFilename )
Image image = Toolkit getDefaultToolkit() getImage(filename);
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker addImage(image );
try
mediaTracker waitForID( );
double thumbRatio = (double) thumbWidth / (double) thumbHeight;
int imageWidth = image getWidth(null);
int imageHeight = image getHeight(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 BufferedImage TYPE_INT_RGB);
Graphics D graphics D = thumbImage createGraphics();
graphics D setRenderingHint(RenderingHints KEY_INTERPOLATION RenderingHints VALUE_INTERPOLATION_BILINEAR);
graphics D drawImage(image thumbWidth thumbHeight null);
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));
JPEGImageEncoder encoder = JPEGCodec createJPEGEncoder(out);
JPEGEncodeParam param = encoder getDefaultJPEGEncodeParam(thumbImage);
quality = Math max( Math min(quality ));
param setQuality((float) quality / f false);
encoder setJPEGEncodeParam(param);
encoder encode(thumbImage);
out close();
catch ( Exception e )
e printStackTrace();
/**
* 抓取电脑屏幕
* @param path
*/
public static void snatchScreen ( String path )
Robot robot;
try
robot = new Robot();
Dimension d = Toolkit getDefaultToolkit() getScreenSize();
Rectangle rect = new Rectangle( d width d height);
BufferedImage image = robot createScreenCapture(rect);
ImageIO write(image jpg new File(path));
catch ( Exception e )
System out println( Failed to snatch screen );
e printStackTrace();
cha138/Article/program/Java/hx/201311/26013
相关参考