java 将一张图片切割成n个小图片,任意切割一张图片成新图片
时间: 2023-09-07 08:13:40 浏览: 59
好的,针对您的问题,我可以为您提供以下思路:
1. 使用 Java 的 BufferedImage 类读取原始图片。
2. 根据需要切割的大小计算出新图片的行数和列数。
3. 循环遍历原始图片,将每个小块切割出来,并保存为新的 BufferedImage 对象。
4. 将每个新的 BufferedImage 对象保存为文件,即可得到切割后的多个小图片。
以下是一个简单的示例代码,可以将一张图片切割成 4 个小图片:
```java
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class ImageSplitter {
public static void main(String[] args) throws IOException {
// 读取原始图片
BufferedImage img = ImageIO.read(new File("original.jpg"));
int width = img.getWidth();
int height = img.getHeight();
// 计算切割后的图片大小
int newWidth = width / 2;
int newHeight = height / 2;
// 循环切割图片
for (int x = 0; x < width; x += newWidth) {
for (int y = 0; y < height; y += newHeight) {
// 切割图片
BufferedImage subImg = img.getSubimage(x, y, newWidth, newHeight);
// 保存新图片
File output = new File("new_" + x + "_" + y + ".jpg");
ImageIO.write(subImg, "jpg", output);
}
}
}
}
```
以上代码将原始图片切割成 4 个小图片,分别保存为 new_0_0.jpg、new_0_250.jpg、new_500_0.jpg 和 new_500_250.jpg 四个文件。您可以根据需要调整切割大小和循环次数,来得到不同数量和大小的小图片。
阅读全文