2012-03-15 13 views
2

私はC#で任意の度数を回転させる必要があるビットマップを持っています。私は結果をビットマップにする必要があります。 StackOverflowでこの問題に部分的に対処するいくつかの質問があります。これらの質問の結果は、System.Drawing.Graphicsオブジェクトに描画され、画面に表示される回転イメージです。それは私が必要とするものではありません。イメージを回転させ、ビットマップオブジェクトに配置する必要があります。C#でビットマップを回転させ、ビットマップで終了するにはどうすればいいですか?

System.Drawing.Graphicsが基になるビットマップを引き出す方法はありません。

これを行う別の方法はありますか?私は最小双線形補間でも必要です。

+2

逆に、新しく作成されたビットマップからグラフィックスオブジェクトを作成します。 –

+0

私はこれを3秒後に見つけました:http://stackoverflow.com/questions/2225363/c-sharp-rotate-bitmap-90-degrees –

答えて

3

同じ手順を使用できますが、Graphicsオブジェクトをディスプレイにリンクする代わりに、新しいBitmapオブジェクトにリンクすることができます。

ちょうど私の考えで
Bitmap rotated = new Bitmap(<dimensions>) 
using(Graphics g = Graphics.FromImage(rotated)) 
{ 
    // Code to draw the rotated image to g goes here 
} 
+0

完了したら、必ずBitmapを破棄してください。 –

+0

C#の新機能ですので、愚かな質問には申し訳ありません。基礎となる「回転」画像は、g.drawImageUnscaledによって変更されますか? Graphicsは、グラフィックスオブジェクト上に配置されるイメージが境界から外れる状況を適切に処理しますか?とてもかっこいい。ありがとう。 – John

0

  1. あなたが好きに存在する画像の回転を使用することができます:あなたは、正確な境界を得るために上記のコードを変更する必要が http://dotnet-snippets.com/dns/image-rotation-by-angle-SID600.aspx

  2. :いくつかを使用しますsin/cos/tanを使った簡単な計算で正しいと分かります

希望の作品:

関連する問題