2009-05-11 23 views

答えて

1

私はアルに同意する - 彼は答えに値するが、この(確かにテストされていない)のコードは、あなたが求めて何をすべき:the docsからしかし注意すべき

def write_bmp_to_dc_rotated(dc, bitmap, angle): 
    ''' 
    Rotate a bitmap and write it to the supplied device context. 
    ''' 
    img = bitmap.ConvertToImage() 
    img_centre = wx.Point(img.GetWidth()/2, img.GetHeight()/2) 
    img = img.Rotate(angle, img_centre) 
    dc.WriteBitmap(img.ConvertToBitmap(), 0, 0) 

一つのこと:

... wxImageを使用すると、リソースを除いて、wxWidgetsでイメージをロードするのが好ましい方法です...

wx.Imageではなくビットマップとして読み込む理由?

+0

私はそれを画面に描画する必要があり、描画する前にwx.Image docからビットマップに変換する必要があると言います。 –

+0

少しの修正の後、あなたのコードが働いた。 –

+0

固定の結果を自分で投稿することも、例を改善するために上記を修正したことを提案することもできますか? –

2

私は、これはそれを行うための最善の方法ですが、1つのオプションConvertToImagewxWidgets help)とwx.Imageに変換してからrotate機能(wxWidgets help)を用いることであろうことはよく分かりません。その後、必要に応じてConvertToBitmapwxWidgets help)に戻すことができます。

私は描画コンテキスト(DC)にcoordinate transformを適用するために使用することができ明白な機能を見ることができなかったが、そこにどこかで1 ...助け

希望があるかもしれません。

1

一般的なローテーションが必要な場合は、グラフィックスコンテキストを使用する方がよいでしょう。ビットマップやテキストなどの描画パスを回転させる

gc = wx.GCDC(dc) 
gc.Rotate(angle) 
gc.DrawText("anurag", 100, 100) 
+0

それは有望だが、GCDCは 'Rotate'メソッドを持っていないようだ! –

+0

あなたはどのバージョンとプラットフォームを使用していますか? wxPythonのドキュメントでは、回転が であり、重く使用しています。 http://www.wxpython.org/docs/api/wx.GraphicsContext-class.html#Rotate –

+0

私は混乱しています。これをチェックしてください:http://www.wxpython.org/docs/api/wx.GCDC-class.html GraphicsContextとGCDCとの接続は何ですか? –

関連する問題