我目前正在使用的方法(下面)导致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;
答案 0 :(得分:1)
随着角度较小的参数变得越来越扭曲。
听起来像你在做:
img = base_img;
for (i = 0; i < n; i++) {
img = rotate(img, theta);
}
当你真的想做的时候:
for (i = 0; i < n; i++) {
img = rotate(base_img, theta * n);
}
但我可能会做出不真实的假设。