【发布时间】:2026-02-18 12:40:02
【问题描述】:
我当前使用的方法(如下)导致 BufferedImage 因较小的角度参数而变得越来越失真。
public static BufferedImage getRotatedImage(BufferedImage src, int angle) {
if (src == null) {
System.out.println("getRotatedImage: input image is null");
return null;
}
int transparency = src.getColorModel().getTransparency();
BufferedImage dest = gc.createCompatibleImage(
src.getWidth(), src.getHeight(), transparency );
Graphics2D g2d = dest.createGraphics();
AffineTransform origAT = g2d.getTransform();
AffineTransform rot = new AffineTransform();
rot.rotate(Math.toRadians(angle), src.getWidth()/2, src.getHeight()/2);
g2d.transform(rot);
g2d.drawImage(src, 0, 0, null);
g2d.setTransform(origAT);
g2d.dispose();
return dest;
【问题讨论】:
-
在绘制新的旋转版本之前,是否要清除图像?
标签: java image rotation bufferedimage affinetransform