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
同時也希望大家記住翼塵,我們還在努力。
翼塵軟件工作室