Java通过Graphics2D等比缩放image
Java中使用Graphics2D进行等比缩放image的步骤如下:
- 创建一个新的BufferedImage对象,指定缩放后的宽度和高度。
- 获取Graphics2D对象,通过调用BufferedImage的getGraphics()方法。
- 设置Graphics2D的绘制质量为高质量,通过调用setRenderingHint()方法设置RenderingHints.KEY_INTERPOLATION属性为RenderingHints.VALUE_INTERPOLATION_BILINEAR。
- 使用Graphics2D的drawImage()方法将原始image绘制到新的BufferedImage上,同时指定缩放后的宽度和高度。
- 释放Graphics2D对象。
- 返回缩放后的BufferedImage对象。
以下是一个示例代码:
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
public class ImageScaler {
public static BufferedImage scaleImage(BufferedImage image, int width, int height) {
BufferedImage scaledImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = scaledImage.createGraphics();
graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.drawImage(image, 0, 0, width, height, null);
graphics2D.dispose();
return scaledImage;
}
public static void main(String[] args) {
// 加载原始image
BufferedImage originalImage = ImageIO.read(new File("original_image.jpg"));
// 缩放image
BufferedImage scaledImage = scaleImage(originalImage, 200, 200);
// 保存缩放后的image
ImageIO.write(scaledImage, "jpg", new File("scaled_image.jpg"));
}
}
这个例子将原始image按照指定的宽度和高度进行等比缩放,并保存为新的缩放后的image
原文地址: https://www.cveoy.top/t/topic/irF0 著作权归作者所有。请勿转载和采集!