【知识积累】BufferedImage类实现图片的切分

简介: 如何实现图片分割?若有园友用到这个模块,使用Java的BufferedImage类来实现,图片切分也可以作为一个小工具积累起来,以备不时之需。

一、引言


  如何实现图片分割?若有园友用到这个模块,使用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++;
        }
    }
}

说明:可以切分任何图片,具体的参数园友可以自行配置~之后就可以在配置的目录下看到切分结果了。


三、总结


  要将平时遇到的一些小工具积累起来,以备不时之需。谢谢各位园友的观看~

目录
相关文章
|
8月前
|
编解码 自然语言处理 算法
开源版图生视频I2VGen-XL:单张图片生成高质量视频
VGen是由阿里巴巴通义实验室开发的开源视频生成模型和代码系列,具备非常先进和完善的视频生成系列能力
|
Java
Java实现图片转化为pdf
Java实现图片转化为pdf
507 0
java代码绘制生成图片(用于多张图片合成)
java代码绘制生成图片(用于多张图片合成)
1936 0
|
5月前
|
存储 安全 Java
"Java编码魔法:揭秘图片与文件的Base64神秘转换术,让数据在指尖跳跃!"
【8月更文挑战第16天】Base64编码在Java开发中常用于将二进制数据如图片转换为ASCII字符串以便传输。编码使用64个字符及等号填充,每3字节数据编码为4个字符。Java利用`java.util.Base64`类实现此功能:读取图片或文件为字节数组后进行编码。解码时将Base64字符串还原为字节数组并写入文件。需注意编码效率降低、不提供安全性及特殊字符兼容性等问题。掌握这些技巧有助于解决Web开发中的数据传输需求。
146 4
|
8月前
|
机器学习/深度学习 搜索推荐 计算机视觉
字节推出DreamTuner:只需提供一张图片,就能帮你生成与该图片主题风格一致的新图像
【2月更文挑战第17天】字节推出DreamTuner:只需提供一张图片,就能帮你生成与该图片主题风格一致的新图像
193 2
字节推出DreamTuner:只需提供一张图片,就能帮你生成与该图片主题风格一致的新图像
|
8月前
|
存储 Java
Java中利用BitMap位图实现海量级数据去重
Java中利用BitMap位图实现海量级数据去重
|
8月前
|
Python
图片拼接 --全景图合成
图片拼接 --全景图合成
谈一谈|Word文档图片的提取
谈一谈|Word文档图片的提取
180 0
|
存储 负载均衡 并行计算
图数据库中的“分布式”和“数据切分”(切图)
什么是分布式系统?为什么需要分布式系统呢?在本文,我们简单讲解下分布式内容,再快速切入的图数据库,了解图数据库的独有数据切分方式,以及各大图数据库产品是如何处理切图的/
350 0
【图片操作】混合图片
混合图片的方式有很多种,我们先来看看如何通过混合图片的通道来实现图片混合。
163 0