产生缩略图
import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;import javax.imageio.ImageIO;public class Thumbnail {/* * 功能:产生缩略图 * 日期:2011-06-05 * */public static void main(String args[]) {// TODO Auto-generated method stub String path = "F:/Documents and Settings/Administrator/桌面/容祖儿.jpg"; /*创建File对象*/ File file = new File(path); /*读入图像文件 得到Bufferedimage对象*/ BufferedImage src = null; try { src = javax.imageio.ImageIO.read(file); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); return; } //得到源图宽 int width = src.getWidth(null); //得到源图长 int height = src.getHeight(null); /*可以打印出原始图像的高度和长度 看一看*/ System.out.println("宽=" + width + "\n高=" + height); /*获得缩略图 返回一个100*100的Image对象*/ Image image = src.getScaledInstance(100, 100, Image.SCALE_DEFAULT); /*再创建一个BufferedImage对象 用于创建100*100大小的图像*/ BufferedImage oimage; oimage = new BufferedImage(100, 100, Image.SCALE_DEFAULT); /*获取图像上下文对象,然后把刚才的Image对象画到BufferedImage中去 切忌, drawImage()方法有很多重载方法,一定要选用下面的这个,它会 95%的复制原图的图片质量。其他重载方法你也可以试试,可能生成出来的 图片很丑噢~哈哈 */ oimage.getGraphics().drawImage(image, 0, 0, null); /*最后把图片以JPED写入*/ File ifile = new File("F:/Documents and Settings/Administrator/桌面/容祖儿1.jpg"); try { ImageIO.write(oimage, "jpeg", ifile); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }}}?
?