当前位置:首页 > Java

java如何切割图片

2026-03-23 16:14:22Java

使用 Java 切割图片的方法

使用 BufferedImageGraphics2D

通过 BufferedImageGraphics2D 可以手动切割图片。以下是一个示例代码:

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class ImageCutter {
    public static void cropImage(String inputPath, String outputPath, int x, int y, int width, int height) throws Exception {
        BufferedImage originalImage = ImageIO.read(new File(inputPath));
        BufferedImage croppedImage = originalImage.getSubimage(x, y, width, height);
        ImageIO.write(croppedImage, "png", new File(outputPath));
    }

    public static void main(String[] args) {
        try {
            cropImage("input.png", "output.png", 100, 100, 200, 200);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用 Thumbnailator

Thumbnailator 是一个简化图片处理的库,可以方便地切割图片。首先添加依赖:

<dependency>
    <groupId>net.coobird</groupId>
    <artifactId>thumbnailator</artifactId>
    <version>0.4.8</version>
</dependency>

示例代码:

import net.coobird.thumbnailator.Thumbnails;
import java.io.File;

public class ThumbnailatorExample {
    public static void main(String[] args) throws Exception {
        Thumbnails.of("input.jpg")
            .sourceRegion(100, 100, 200, 200)
            .size(200, 200)
            .toFile("output.jpg");
    }
}

使用 JavaFXImageImageView

如果项目支持 JavaFX,可以使用 ImageImageView 进行图片切割:

import javafx.application.Application;
import javafx.embed.swing.SwingFXUtils;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.image.WritableImage;
import javafx.stage.Stage;
import javax.imageio.ImageIO;
import java.io.File;

public class JavaFXImageCutter extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Image originalImage = new Image("file:input.png");
        ImageView imageView = new ImageView(originalImage);
        imageView.setViewport(new javafx.geometry.Rectangle2D(100, 100, 200, 200));
        WritableImage croppedImage = imageView.snapshot(null, null);
        ImageIO.write(SwingFXUtils.fromFXImage(croppedImage, null), "png", new File("output.png"));
    }

    public static void main(String[] args) {
        launch(args);
    }
}

使用 ImageMagick 的 Java 绑定

通过 im4javaJMagick 调用 ImageMagick 进行图片切割。以下是 im4java 的示例:

java如何切割图片

import org.im4java.core.ConvertCmd;
import org.im4java.core.IMOperation;

public class ImageMagickExample {
    public static void main(String[] args) throws Exception {
        IMOperation op = new IMOperation();
        op.addImage("input.jpg");
        op.crop(200, 200, 100, 100);
        op.addImage("output.jpg");
        ConvertCmd convert = new ConvertCmd();
        convert.run(op);
    }
}

注意事项

  • 确保切割区域的坐标和尺寸不超过原图的范围。
  • 处理大图片时注意内存占用,避免 OutOfMemoryError
  • 根据需求选择合适的图片格式(如 PNG、JPEG)。

标签: 图片java
分享给朋友:

相关文章

如何安装java

如何安装java

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK下载页面,选择适合操作系统的版本(Windows、macOS或Linux)。推荐下载最新的长期支持(LTS)版本,如Java…

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行安…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

java如何创建项目

java如何创建项目

使用IDE创建Java项目(以IntelliJ IDEA为例) 打开IntelliJ IDEA,选择“New Project”。 在左侧菜单中选择“Java”,确保已配置JDK(若无需手动添加)。 勾…

vue实现图片编辑

vue实现图片编辑

Vue实现图片编辑的方法 使用第三方库vue-cropper 安装vue-cropper库: npm install vue-cropperjs 在Vue组件中使用: <template&g…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…