0

重複の可能性:
BufferedImage インスタンスの回転

私が現在使用している方法 (以下) では、角度の引数が小さくなると、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; 
4

1 に答える 1

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);
}

しかし、私は真実ではない仮定をしているかもしれません。

于 2012-12-31T08:51:28.580 に答える