【知識積累】BufferedImage類實現圖片的切分

leesf發表於2016-02-29

一、引言

  如何實現圖片分割?若有園友用到這個模組,使用Java的BufferedImage類來實現,圖片切分也可以作為一個小工具積累起來,以備不時之需。

二、程式碼清單 

package com.leesf.util;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import javax.imageio.ImageIO;

public class ImageUtil {
    // 切圖
    public static ArrayList<BufferedImage> cutImage(String fileUrl, int rows,
            int cols, int nums) {
        ArrayList<BufferedImage> list = new ArrayList<BufferedImage>();
        try {
            BufferedImage img = ImageIO.read(new File(fileUrl));
            int lw = img.getWidth() / cols;
            int lh = img.getHeight() / rows;
            for (int i = 0; i < nums; i++) {
                BufferedImage buffImg = img.getSubimage(i % cols * lw, i / cols
                        * lh, lw, lh);
                list.add(buffImg);
            }
            return list;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return list;
    }

    public static void main(String[] args) throws IOException {
        ArrayList<BufferedImage> biLists = ImageUtil.cutImage("img/image2.jpg",
                2, 2, 4);
        String fileNameString = "E:";
        int number = 0;
        String format = "jpg";
        for (BufferedImage bi : biLists) {
            File file1 = new File(fileNameString + File.separator + number
                    + "." + format);
            ImageIO.write(bi, format, file1);
            number++;
        }
    }
}
View Code

  說明:可以切分任何圖片,具體的引數園友可以自行配置~之後就可以在配置的目錄下看到切分結果了。

三、總結

  要將平時遇到的一些小工具積累起來,以備不時之需。謝謝各位園友的觀看~

相關文章