Java拼图游戏


前言

我有一张图片要作为拼图游戏的素材,然而我不会Photoshop等图片制作工具,于是用Java封装的图片工具类进行切割图片(这样比较装X QAQ),这里需要导入BufferedImage以及IO流File这两个包装类


代码如下:

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

import javax.imageio.ImageIO;

class 图片切割 {

    public static boolean cutImage(File sourcePath, int  cutNumber, String savePath) {
        try {
            BufferedImage image = ImageIO.read(sourcePath); //通过io流读入一张图片到缓冲区

            int Image_Width = image.getWidth();
            int Image_Height = image.getHeight();

            int width = Image_Width / cutNumber;
            int height = Image_Height / cutNumber;

            for(int i=0;i<cutNumber;i++) {
                for(int j=0;j<cutNumber;j++) {
                    ImageIO.write(image.getSubimage(j*width, i*height, width, height), "jpg", 
                            new File(savePath+"\\"+(i*cutNumber+j+1)+".jpg"));

                }
            }

            return true;
        }catch(Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        cutImage(new File("ImageElem\\Index_01.jpg"), 3 ,"ImageElem\\Elem_1");
    }

}

原始图片:

切割后:


总结:

1. 用整除的方法得到的数可能会有所误差,这都是得到的图片就可能不完整或者重复,暂时还不明白这事怎么解决!
2. 这样的类其实可以封装成一个工具类,方便以后的使用