Java图像分割-思路和源代码

来源:互联网 发布:python 字符串 数字 编辑:程序博客网 时间:2024/06/06 11:38

QQ交流:740382997

或者发邮件给我:yichensoft@126.com

翼尘软件工作室

源码下载地址: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

邮箱:yichensoft@126.com

同时也希望大家记住翼尘,我们还在努力。

翼尘软件工作室



原创粉丝点击