Java圖像分割-思路和源代碼

QQ交流:740382997

或者發郵件給我:[email protected]

翼塵軟件工作室

源碼下載地址:http://download.csdn.net/detail/u011351840/5753097

可能大家在製作RPG等遊戲時會用到如下的圖片(剪裁於牧場物語),也就是人物走動的素材圖


或者用到這種地圖的素材(也是自己剪的,源自牧場物語)


這時如果沒有一個合適的圖片分割工具將會使製作過程非常麻煩,接下來用Java實現圖片的分割。


Java中的BufferedImage類中有一個方法getSubimage(int x, int y, int w, int h),也就是從(X,Y)開始,截取寬W,高H的一個子BufferedImage。

利用這個類我們可以製作出一個格狀分割圖片的工具。

具體源代碼。其中ImageToBufferedImage類可以在此處下載:http://download.csdn.net/detail/u011351840/5735981

import java.awt.Image;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;

public class PictureClip {
	int al;
	BufferedImage[] img;
	public PictureClip() {
	}
	public BufferedImage[] getImage(){
		return img;
	}
	public void setImage(String filename,int w,int h){
		int x=0,y=0;
		ImageToBufferedImage itob=new ImageToBufferedImage();
		BufferedImage bi=null;
		Image buffedi=null;
		BufferedImage[] imgi=null;
		buffedi=Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("/pic/"+filename+".png"));
		bi=itob.toBufferedImage(buffedi);
		if(bi.getWidth()==w&&bi.getHeight()==h){
			img=null;
			img[0]=bi;
			return;
		}
		if((bi.getWidth()%w!=0||bi.getWidth()==0)||(bi.getHeight()%h!=0||bi.getWidth()==0)){
			System.out.println("Error: On Width or Height");
		}
		else{
			al=bi.getWidth()/w*bi.getHeight()/h;
			imgi=new BufferedImage[al];
			for(int i=0;i<al;i++){
				imgi[i]=bi.getSubimage(x*w, y*h,w,h);
				if(x+1>=bi.getWidth()/w){
					x=0;
					y++;
				}
				else{
					x++;
				}
			}
		}
		this.img=imgi;
	}
	public int getIndex(){
		return al;
	}
}

聯繫QQ:740382997

羣:252367359

郵箱:[email protected]

同時也希望大家記住翼塵,我們還在努力。

翼塵軟件工作室



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