ImageIO
ImageIO類包含兩個靜態方法:read()和write(),通過這兩個方法即可完成對位圖文件的讀寫,調用write()方法輸出圖形文件時需要指定輸出的圖形格式。
public static BufferedImage read(File input) throws IOException
public static boolean write(RenderedImage im,String formatName,File output)throws IOException
BufferedImage
Image類代表位圖,但它是一個抽象類,無法直接創建Image對象,爲此java爲它提供了一個BufferedImage子類,這個子類是一個可以訪問圖像數據緩衝區的Image實現類。該類提供了一個簡單的構造器:
BufferedImage(int width,int height,int imageType):創建指定大小、指定圖像類型的BufferedImage對象。
除此之外,還提供一個getGraphics()方法返回該對象的Graphics對象,從而允許通過該Graphics對象向BufferedImage中添加圖形。
Graphics
Graphics是一個抽象的畫筆對象,它可以在組件上繪製豐富多彩的幾何圖形和位圖。它提供有一個重要方法,將一個img對象的原始圖形寬度縮小爲width,高度縮小爲height,添加到BufferedImage對象的(x,y)處:
public abstract boolean drawImage(Image img, int x, int y,int width,int height, ImageObserver observer)
import tmall.bean.Category;
import tmall.util.DBUtil;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) throws IOException {
//定義一個BufferedImage對象,用於保存縮小後的位圖
BufferedImage bufferedImage=new BufferedImage(217,190,BufferedImage.TYPE_INT_RGB);
Graphics graphics=bufferedImage.getGraphics();
//讀取原始位圖
Image srcImage= ImageIO.read(new File("J:\\1.jpg"));
//將原始位圖縮小後繪製到bufferedImage對象中
graphics.drawImage(srcImage,0,0,217,190,null);
//將bufferedImage對象輸出到磁盤上
ImageIO.write(bufferedImage,"jpg",new File("j:\\2.jpg"));
}
}