在 Java 中进行图片裁剪并取中间部分,你可以使用多种方式实现。以下是两种常见的方式,分别使用 Java 标准库和第三方库进行操作。
步骤流程:
javax.imageio.ImageIO
类加载图片文件并创建一个 BufferedImage
对象。BufferedImage
对象,指定裁剪区域的尺寸。drawImage
方法将原始图片的中间部分绘制到新的图片上。示例代码:
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 是一个方便的第三方库,用于处理图像缩略图和裁剪等操作。
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);
}
}
在这两种方式中,你可以根据具体的需求选择合适的方法来进行图片裁剪和取中间部分。方式一使用标准库,不需要引入额外的依赖,而方式二使用了第三方库,提供了更多的便利方法。根据你的项目需求和喜好,选择适合你的方法即可。