Java 基础教程

Java 面向对象

Java 高级教程

Java 笔记

Java FAQ

java图片裁剪取中间部分


在 Java 中进行图片裁剪并取中间部分,你可以使用多种方式实现。以下是两种常见的方式,分别使用 Java 标准库和第三方库进行操作。

方式一:使用 Java 标准库

步骤流程:

  1. 使用 javax.imageio.ImageIO 类加载图片文件并创建一个 BufferedImage 对象。
  2. 获取原始图片的宽度和高度。
  3. 计算裁剪区域的位置和尺寸,通常为原始宽度和高度的中间部分。
  4. 创建一个新的 BufferedImage 对象,指定裁剪区域的尺寸。
  5. 使用 Graphics2D 对象的 drawImage 方法将原始图片的中间部分绘制到新的图片上。
  6. 将新的图片保存到文件。

示例代码:

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

public class ImageCropExample {
    public static void main(String[] args) throws IOException {
        File inputFile = new File("input.jpg");
        File outputFile = new File("output.jpg");

        BufferedImage originalImage = ImageIO.read(inputFile);
        int originalWidth = originalImage.getWidth();
        int originalHeight = originalImage.getHeight();

        int cropWidth = Math.min(originalWidth, originalHeight);
        int cropHeight = cropWidth;
        int x = (originalWidth - cropWidth) / 2;
        int y = (originalHeight - cropHeight) / 2;

        BufferedImage croppedImage = new BufferedImage(cropWidth, cropHeight, originalImage.getType());
        Graphics2D g2d = croppedImage.createGraphics();
        g2d.drawImage(originalImage, 0, 0, cropWidth, cropHeight, x, y, x + cropWidth, y + cropHeight, null);
        g2d.dispose();

        ImageIO.write(croppedImage, "jpg", outputFile);
    }
}

方式二:使用第三方库 - Thumbnailator

Thumbnailator 是一个方便的第三方库,用于处理图像缩略图和裁剪等操作。

Maven 依赖:

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

Gradle 依赖:

implementation 'net.coobird:thumbnailator:0.4.14'

示例代码:

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

public class ThumbnailatorExample {
    public static void main(String[] args) throws IOException {
        File inputFile = new File("input.jpg");
        File outputFile = new File("output.jpg");

        Thumbnails.of(inputFile)
                .sourceRegion(0.25, 0.25, 0.75, 0.75) // 中间区域的比例范围
                .size(300, 300) // 输出图片尺寸
                .toFile(outputFile);
    }
}

在这两种方式中,你可以根据具体的需求选择合适的方法来进行图片裁剪和取中间部分。方式一使用标准库,不需要引入额外的依赖,而方式二使用了第三方库,提供了更多的便利方法。根据你的项目需求和喜好,选择适合你的方法即可。

###使用String的substring方法这是最常见和基本的方法,它是Java内置的。依赖坐标(Maven):依赖坐标(Gradle): ...
在Java中生成图片有多种方式,下面我将介绍几种常见的实现方式,包括使用Java标准库以及一些第三方库。示例代码:###使用第三方库:Apa ...
导入所需的库:不需要导入额外的库,因为`Math`类是Java标准库中的一部分。总之,以上是获取绝对值的几种常见方法,根据您的需求和代码风格 ...
###方式一:使用取模运算符%这是最常见和简单的方式,Java提供了`%`运算符用于取余数。示例代码:###方式三:使用BigInteger ...
在Java中进行图片识别可以通过多种方式实现,主要涉及图像处理、机器学习和计算机视觉领域的技术。图像识别涉及多个领域,从简单的特征匹配到复杂 ...