java通過ImageReader裁剪圖片
/**
* 圖片裁剪
*
* @param src 源圖片地址,圖片格式PNG
* @param dest 目的圖片地址
* @param x 圖片起始點x座標
* @param y 圖片起始點y座標
* @param w 圖片寬度
* @param h 圖片高度
* @param imageFormat 圖片格式:jpg|png
*/
public static void cutImage(String src, String dest, int x, int y, int w, int h, String imageFormat) {
try {
//獲取png圖片的ImageReader的Iterator
Iterator iterator = ImageIO.getImageReadersByFormatName(imageFormat);
//根據Iterator獲取ImageReader
ImageReader reader = (ImageReader) iterator.next();
//獲取源圖片輸入流
InputStream in = new FileInputStream(src);
//根據源圖片輸入流獲得ImageInputStream流
ImageInputStream iis = ImageIO.createImageInputStream(in);
//將ImageInputStream流加載到ImageReader中
reader.setInput(iis, true);
//圖片讀取參數
ImageReadParam param = reader.getDefaultReadParam();
Rectangle rect = new Rectangle(x, y, w, h);
//參數對象設置形狀爲一定大小的長方形
param.setSourceRegion(rect);
//ImageReader根據參數對象獲得BufferedImage
BufferedImage bi = reader.read(0, param);
//將經過參數對象篩選的圖片流寫入目標文件中
ImageIO.write(bi, imageFormat, new File(dest));
} catch (IOException e) {
e.printStackTrace();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.