Possible Duplicate:
Rotating BufferedImage instances
我当前使用的方法(如下)会导致 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;
最佳答案
that becomes increasingly distorted with smaller angle arguments.
听起来你正在做:
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);
}
但我可能做出了不真实的假设。
关于java - 如何在 Java 中旋转 BufferedImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14097856/