java - 如何在 Java 中旋转 BufferedImage?

标签 java image rotation bufferedimage affinetransform

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/

相关文章:

iPad 上的 iPhone 应用程序 : UILabel pixelated during rotation?

java - 如何从返回文件名及其文件夹名称的文件夹中递归检索文件

language-agnostic - 事物如何在视觉上表现出来?

javascript - 找到旋转点的 Angular ,使其面向 3d 空间中的另一个点

c++ - 使用 glm 从旋转矩阵获取角度?

html - 将图像裁剪成正方形,然后使用纯 CSS 将其转成圆形?

java - 添加存储库会引发 bean 创建错误

java - 找不到合适的驱动程序 : jdbc:google:mysql

java - 确保在 Spring Boot 中 Web 服务器公开 HTTP 之前执行代码

css - 图像顶部的按钮(但它不会停留)