3

C# で画像を回転させようとしていて、次のコードを使用しています。

///create a new empty bitmap to hold rotated image
Bitmap returnBitmap = new Bitmap(newBMP.Width, newBMP.Height);
//make a graphics object from the empty bitmap
Graphics g = Graphics.FromImage(returnBitmap);
//move rotation point to center of image
g.TranslateTransform((float)newBMP.Width / 2, (float)newBMP.Height / 2);
//rotate
g.RotateTransform(-90);
//move image back
g.TranslateTransform(-(float)newBMP.Width / 2, -(float)newBMP.Height / 2);
//draw passed in image onto graphics object
g.DrawImage(newBMP, new Point(0, 0)); 

これnewBMPはフォームから取得したビットマップで、サイズを変更しています。それから回転させたいのですが、上記のコードを試してみると、写真の上と下が切れてしまいます。このすべての後、新しい写真をサーバーに保存します。

回転以外はすべて正常に動作します...

誰もが問題を見ますか?

これを使用して解決しました:C#ビットマップを90度回転させます

4

3 に答える 3

1

ビットマップの幅が高さよりも大きい場合、90 度回転するとトリミングされます。を呼び出すときは、それを考慮する必要がありますg.TranslateTranform

于 2013-03-13T14:42:28.270 に答える