java获取网络图片、java截屏、java创建缩略图,java截屏
java获取网络图片、java截屏、java创建缩略图,java截屏
java获取网络图片、java截屏、java创建缩略图
package getPictureFromNet;
/**
* java截屏,获得网络图片,创建图片缩略图
*/
import java.net.URL;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics2D;
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.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.File;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class GetPicture {
public GetPicture() {
}
public static void main(String[] args) {
// snatchPicture("http://img5.pcpop.com/ProductImages/Original/0/588/000588468.jpg",
// "C://7755p2c");
// 截取当前屏幕保存为c盘根目录下的screen.jpg图片
snatchScreen("c://screen.jpg");
// 根据c盘根目录下的screen.jpg图片,创建一个宽128,高102的缩略图screenSmall.jpg并保存在c盘根目录下面
createThumbnail("c://screen.jpg", 128, 102, 10, "c://screenSmall.jpg");
System.out.println("successful");
}
/**
* 抓取当前屏幕 create date:2008-7-28 author:Administrator
*
* @param path
* @throws Exception
*/
public static void snatchScreen(String path) {
Robot robot;
try {
robot = new Robot();
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle rect = new Rectangle(0, 0, 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();
}
}
/**
* java创建图片的缩略图 create date:2009-5-27 author:Administrator
*
* @param filename
* 源图片
* @param thumbWidth
* 缩略图宽
* @param thumbHeight
* 缩略图高
* @param quality
* 图片像素
* @param outFilename
* 缩略图文件名
*
*/
private static void createThumbnail(String filename, int thumbWidth,
int thumbHeight, int quality, String outFilename) {
// load image from filename
Image image = Toolkit.getDefaultToolkit().getImage(filename);
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
try {
mediaTracker.waitForID(0);
// use this to test for errors at this point:
// System.out.println(mediaTracker.isErrorAny());
// determine thumbnail size from WIDTH and HEIGHT
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);
}
// draw original image to thumbnail image object and
// scale it to the new size on-the-fly
BufferedImage thumbImage = new BufferedImage(thumbWidth,
thumbHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = thumbImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
// save thumbnail image to outFilename
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(outFilename));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder
.getDefaultJPEGEncodeParam(thumbImage);
quality = Math.max(0, Math.min(quality, 100));
param.setQuality((float) quality / 100.0f, false);
encoder.setJPEGEncodeParam(param);
encoder.encode(thumbImage);
out.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 实现从网站下载图片 create date:2008-7-28 author:Administrator
*
* @param urlPath
* @param picPathName
*/
public static void snatchPicture(String urlPath, String picPathName) {
try {
URL url = new URL(urlPath);
BufferedInputStream bis = new BufferedInputStream(url.openStream());
byte[] bytes = new byte[2048];
OutputStream bos = new FileOutputStream(new File(picPathName));
int len;
while ((len = bis.read(bytes)) > 0) {
bos.write(bytes, 0, len);
}
bis.close();
bos.flush();
bos.close();
} catch (Exception e) {
System.out.println("抓取图片失败 ... ");
e.printStackTrace();
}
}
}
相关文章
- 暂无相关文章
用户点评