java中实现图片正方形裁剪并缩放
时间: 2024-01-23 11:02:04 浏览: 247
可以使用Java的ImageIO类和BufferedImage类来实现图片的裁剪和缩放。以下是一个示例代码:
```java
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class ImageCropper {
public static void main(String[] args) throws IOException {
// 读取原始图片
File inputFile = new File("input.jpg");
BufferedImage inputImage = ImageIO.read(inputFile);
// 获取原始图片的宽度和高度
int inputWidth = inputImage.getWidth();
int inputHeight = inputImage.getHeight();
// 计算正方形的边长
int squareSize = Math.min(inputWidth, inputHeight);
// 计算正方形左上角的坐标
int x = (inputWidth - squareSize) / 2;
int y = (inputHeight - squareSize) / 2;
// 裁剪出正方形
BufferedImage squareImage = inputImage.getSubimage(x, y, squareSize, squareSize);
// 缩放图片到指定大小
int outputSize = 256;
BufferedImage outputImage = new BufferedImage(outputSize, outputSize, BufferedImage.TYPE_INT_RGB);
outputImage.getGraphics().drawImage(squareImage, 0, 0, outputSize, outputSize, null);
// 保存图片
File outputFile = new File("output.jpg");
ImageIO.write(outputImage, "jpg", outputFile);
}
}
```
这个示例代码假设原始图片是一个矩形,将其裁剪成正方形并缩放到256x256大小。你可以根据需要调整裁剪和缩放的参数。
阅读全文