個別にイメージを回転できる必要があります(javaで)。これまで私が見つけたのはg2d.drawImage(image、affinetransform、ImageObserver)だけです。残念なことに、私は特定のポイントで画像を描画する必要があります。引数を指定して1つの画像を別々に回転させる方法はありません。また、xとyを設定することもできます。どんな助けもありがとうJava:回転イメージ
13
A
答えて
25
これはあなたがそれを行う方法です。このコードは、「画像」と呼ばれるバッファリングされたイメージのexistanceを前提としてい
// The required drawing location
int drawLocationX = 300;
int drawLocationY = 300;
// Rotation information
double rotationRequired = Math.toRadians (45);
double locationX = image.getWidth()/2;
double locationY = image.getHeight()/2;
AffineTransform tx = AffineTransform.getRotateInstance(rotationRequired, locationX, locationY);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
// Drawing the rotated image at the required drawing locations
g2d.drawImage(op.filter(image, null), drawLocationX, drawLocationY, null);
8
AffineTransform
インスタンスが(一緒に追加された)に連結することができます(あなたのコメントのように述べています)。したがって、「原点へのシフト」、「回転」、「希望の位置へのシフト」を組み合わせた変換を行うことができます。
+4
+1 ['RotateApp'](http://stackoverflow.com/a/3420651/230513)がその例です。 – trashgod
0
public static BufferedImage rotateCw(BufferedImage img)
{
int width = img.getWidth();
int height = img.getHeight();
BufferedImage newImage = new BufferedImage(height, width, img.getType());
for(int i=0 ; i < width ; i++)
for(int j=0 ; j < height ; j++)
newImage.setRGB(height-1-j, i, img.getRGB(i,j));
return newImage;
}
このような複雑なドロー文を使用せずにそれを行うための簡単な方法https://coderanch.com/t/485958/java/Rotating-buffered-image
0
から:
//Make a backup so that we can reset our graphics object after using it.
AffineTransform backup = g2d.getTransform();
//rx is the x coordinate for rotation, ry is the y coordinate for rotation, and angle
//is the angle to rotate the image. If you want to rotate around the center of an image,
//use the image's center x and y coordinates for rx and ry.
AffineTransform a = AffineTransform.getRotateInstance(angle, rx, ry);
//Set our Graphics2D object to the transform
g2d.setTransform(a);
//Draw our image like normal
g2d.drawImage(image, x, y, null);
//Reset our graphics object so we can draw with it again.
g.setTransform(backup);
関連する問題
- 1. Javaで回転イメージを比較
- 2. UIImageView回転イメージ
- 3. 3d回転イメージ
- 4. JavaScriptイメージの回転イメージ
- 5. 回転イメージin Javafx
- 6. イメージ回転のUIscrollView
- 7. 回転イメージを透視図
- 8. CSS - 背景イメージの回転
- 9. C++:BMPイメージの回転
- 10. Javascript Canvas回転円のイメージ
- 11. イメージを底から回転
- 12. Javaでバッファリングされたイメージを回転する
- 13. Javaでイメージを手動で回転しますか?
- 14. 回転行列Java
- 15. Javaイメージ転送の問題
- 16. イメージを連続的に回転する
- 17. イメージのセットを回転する
- 18. イメージの回転とサイズ変更
- 19. キャンバスに回転したイメージを描く
- 20. イメージを回転する-45度
- 21. イメージを追加する回転フリップイメージ?
- 22. GD PHPイメージ回転黒いボーダー
- 23. 3次元でのイメージの回転(Matlab)
- 24. イメージを180度以上回転する
- 25. 回転イメージスライダー+リンクされたイメージ
- 26. C#でイメージを回転するには?
- 27. イメージ一部のブラウザで回転...?
- 28. 回転イメージの設定方法は?
- 29. scipy.ndimage.interpolation.rotateの後の回転イメージの座標?
- 30. 回転イメージ(元の位置に戻す)
これは、おかげで働いていました! – Jimmt
なぜそんなに複雑ですか?トランスフォームには回転と平行移動の両方が含まれているので、 'g2d.drawImage(image、tx、ImageObserver)'と 'tx'を答えます。 –
ありがとうございますが、画像の一部が途切れてしまいます。 – HyperNeutrino