static public Image[] split_size(String imageFile , int w , int h) { Image[] images = new Image[0]; Image image = getImageFromFile(imageFile); if( image == null ) return images; BufferedImage bufImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR); bufImage.getGraphics().drawImage(image,0,0,null); int x = (int)(image.getWidth(null)/w); int y = (int)(image.getHeight(null)/h); images = new BufferedImage[x*y]; for(int j=0;j<y;j++) { int yy = j*h; for(int i=0;i<x;i++) { images[j*x+i] = bufImage.getSubimage(i*w,yy,w,h); } } return images; }
static public Image[] split_count(String imageFile , int x , int y) { Image[] images = new Image[0]; Image image = getImageFromFile(imageFile); if( image == null ) return images; BufferedImage bufImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR); bufImage.getGraphics().drawImage(image,0,0,null); int w = (int)(image.getWidth(null)/x); int h = (int)(image.getHeight(null)/y); images = new BufferedImage[x*y]; for(int j=0;j<y;j++) { int yy = j*h; for(int i=0;i<x;i++) { images[j*x+i] = bufImage.getSubimage(i*w,yy,w,h); } } return images; }
static public Image[] split_size(Image image , int w , int h) { Image[] images = new Image[0]; BufferedImage bufImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR); bufImage.getGraphics().drawImage(image,0,0,null); int x = (int)(image.getWidth(null)/w); int y = (int)(image.getHeight(null)/h); images = new BufferedImage[x*y]; for(int j=0;j<y;j++) { int yy = j*h; for(int i=0;i<x;i++) { images[j*x+i] = bufImage.getSubimage(i*w,yy,w,h); } } return images; }
static public Image[] split_count(Image image , int x , int y) { Image[] images = new Image[0]; BufferedImage bufImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR); bufImage.getGraphics().drawImage(image,0,0,null); int w = (int)(image.getWidth(null)/x); int h = (int)(image.getHeight(null)/y); images = new BufferedImage[x*y]; for(int j=0;j<y;j++) { int yy = j*h; for(int i=0;i<x;i++) { images[j*x+i] = bufImage.getSubimage(i*w,yy,w,h); } } return images; }
给你一个例子:import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.swing.*;class SplitImage {
private SplitImage() {}
static public Image[] split_size(String imageFile , int w , int h) {
Image[] images = new Image[0];
Image image = getImageFromFile(imageFile);
if( image == null ) return images;
BufferedImage bufImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR);
bufImage.getGraphics().drawImage(image,0,0,null);
int x = (int)(image.getWidth(null)/w);
int y = (int)(image.getHeight(null)/h);
images = new BufferedImage[x*y];
for(int j=0;j<y;j++) {
int yy = j*h;
for(int i=0;i<x;i++) {
images[j*x+i] = bufImage.getSubimage(i*w,yy,w,h);
}
}
return images;
}
static public Image[] split_count(String imageFile , int x , int y) {
Image[] images = new Image[0];
Image image = getImageFromFile(imageFile);
if( image == null ) return images;
BufferedImage bufImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR);
bufImage.getGraphics().drawImage(image,0,0,null);
int w = (int)(image.getWidth(null)/x);
int h = (int)(image.getHeight(null)/y);
images = new BufferedImage[x*y];
for(int j=0;j<y;j++) {
int yy = j*h;
for(int i=0;i<x;i++) {
images[j*x+i] = bufImage.getSubimage(i*w,yy,w,h);
}
}
return images;
}
static public Image[] split_size(Image image , int w , int h) {
Image[] images = new Image[0];
BufferedImage bufImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR);
bufImage.getGraphics().drawImage(image,0,0,null);
int x = (int)(image.getWidth(null)/w);
int y = (int)(image.getHeight(null)/h);
images = new BufferedImage[x*y];
for(int j=0;j<y;j++) {
int yy = j*h;
for(int i=0;i<x;i++) {
images[j*x+i] = bufImage.getSubimage(i*w,yy,w,h);
}
}
return images;
}
static public Image[] split_count(Image image , int x , int y) {
Image[] images = new Image[0];
BufferedImage bufImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR);
bufImage.getGraphics().drawImage(image,0,0,null);
int w = (int)(image.getWidth(null)/x);
int h = (int)(image.getHeight(null)/y);
images = new BufferedImage[x*y];
for(int j=0;j<y;j++) {
int yy = j*h;
for(int i=0;i<x;i++) {
images[j*x+i] = bufImage.getSubimage(i*w,yy,w,h);
}
}
return images;
}
static public Image getImageFromFile(String imageFile) {
File file = new File(imageFile);
if(!file.exists()) {
System.out.println ("文件不存在:"+imageFile);
return null;
}
if(!file.isFile()) {
System.out.println (imageFile+" 不是一个文件");
return null;
}
Image image = Toolkit.getDefaultToolkit().createImage(imageFile);
return image;
}
public static void main(String args[]) {
String file = "UserImages.gif";
Image image = getImageFromFile(file);
JFrame f = new JFrame("测试程序");
f.setBounds(300,200,400,300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = f.getContentPane();
c.setLayout(new FlowLayout());
JButton bz = new JButton(new ImageIcon(image));
c.add(bz);
Image[] is = split_count(image,11,1);
for(int i=0;i<is.length;i++) {
JButton b = new JButton(new ImageIcon(is[i]));
c.add(b);
}
f.setVisible(true);
}
}