0
私は、ビットマップがあります。どのようにビットマップを任意の角度で回転させますか?
Bitmap UnitImageBMP
をそして私はそれを度の任意の数を回転させる必要があります。これはどうすればいいですか? RotateFlipメソッドは90度単位でのみ回転します。おかげさまで
私は、ビットマップがあります。どのようにビットマップを任意の角度で回転させますか?
Bitmap UnitImageBMP
をそして私はそれを度の任意の数を回転させる必要があります。これはどうすればいいですか? RotateFlipメソッドは90度単位でのみ回転します。おかげさまで
私はあなたのためにいくつかの検索を行なったし、この発見:
public static Bitmap RotateImage(Bitmap b, float angle)
{
//create a new empty bitmap to hold rotated image
Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
//make a graphics object from the empty bitmap
using(Graphics g = Graphics.FromImage(returnBitmap))
{
//move rotation point to center of image
g.TranslateTransform((float)b.Width/2, (float)b.Height/2);
//rotate
g.RotateTransform(angle);
//move image back
g.TranslateTransform(-(float)b.Width/2, -(float)b.Height/2);
//draw passed in image onto graphics object
g.DrawImage(b, new Point(0, 0));
}
return returnBitmap;
}
これは働くかもしれないが、いくつかの問題があります。まず、ビットマップイメージが長方形の場合、新しいビットマップイメージはイメージを切り捨てます。これはおそらく、新しいビットマップを最大の正方形にすることで解決できます。しかし、これをしても私はクリッピングを経験しています。私ができるなら、私は絵を掲示するだろう。 – zetar
私は問題を解決しました。私はオリジナルのビットマップイメージを(余分な空白を持つ)正方形にするだけでした。 RotateImageコードが正しく動作するようになりました。変換された画像を白で透明にしました。 – zetar