Java對圖片進行截取 | Java截取圖片的一部分

目錄

1.實現

2.在截圖過程中對參數設置不正確程序運行會產生異常 

3.補充,如何生成一張空白圖片

4.參考


1.實現

場景:本地存在要處理的圖像,嘗試截取圖像的一部分內容另行存儲

import java.awt.Color;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

 
/**
 * 實現截取已存在圖片的一部分
 * <br>本例子爲從原圖的0.2倍寬和高處開始截取
 * <br>提示:截取的起點結合截取長度和高度不應超過原圖所在的座標範圍
 * @author yangcongcong
 *
 */
public class DrawPic {

	public static void main(String[] args) { 
                //原圖片
		String soursePicPath = "D:/File/javaPic.png";
		File sourcePic = new File(soursePicPath);
		try {
			BufferedImage pic1 = ImageIO.read(sourcePic);
			int width = pic1.getWidth();
			int height = pic1.getHeight();
                        //參數依次爲,截取起點的x座標,y座標,截取寬度,截取高度
			BufferedImage pic2 = pic1.getSubimage(width/5, height/5, width-width/5, height-height/5);

                        //將截取的子圖另行存儲
			File desImage = new File("D:/File/subjavaPic.png");
			ImageIO.write(pic2, "png", desImage);
		} catch (IOException e1) {
			e1.printStackTrace();
		}

    }
	

}

效果圖示例:依次爲原圖和截取後的結果圖

原圖原圖

結果圖 結果圖

2.在截圖過程中對參數設置不正確程序運行會產生異常 

例如:

//截圖起點的x座標設置不正確
BufferedImage pic2 = pic1.getSubimage(width+1, height/5, width-width/5, height-height/5);

會產生如下異常: 

圖片的座標系如下:

寬度在x軸,高度在y軸

設置參數時,不能超過原圖片的座標範圍。

 3.補充,如何生成一張空白圖片

BufferedImage bi = new BufferedImage(200, 200, BufferedImage.TYPE_INT_BGR);

//要生成的空白圖片的路徑
final File file = new File("D:/File/javaPic000.png");

try {

	if(file.exists()) {
    	    file.delete();
    	    file.createNewFile();
	}

}catch(IOException e) {
	e.printStackTrace();
}

Graphics g = bi.getGraphics();

//將圖片設置爲白色圖片
Color color = new Color(255,255,255);
g.setColor(color);
g.fillRect(0, 0, bi.getWidth(), bi.getHeight());

////可以接着進行塗畫
//g.setColor(new Color(66, 37, 188));
//g.drawLine(0, 100, 100, 100);

g.dispose();

try {
    ImageIO.write(bi, picType, file);
} catch (IOException e) {
    e.printStackTrace();
}

4.參考

http://www.voidcn.com/article/p-yuvqgefh-btn.html java圖像裁剪

https://blog.csdn.net/xing8831925/article/details/88950513 java 創建新的圖片,底色自己設定

https://blog.csdn.net/zhouyingge1104/article/details/80995845 Java創建圖片並繪圖

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章