Facebookのようにユーザーが画像にタグを付けるために使用できるフォトビューアーを作成しています。画像をクリックしてタグ付けしたら、wx.GetMousePositionを使用して、画像上でマウスがクリックされた位置を見つけます。次に、ユーザーがタグ付けした画像のwx.MemoryDCを作成して、タグを描画できるようにします。 dc.DrawRectangleを使用して画像上で。
以下は、画像に描画するためのコードです。ちなみに、私はwxPythonを使用しています。
W=495 #Position of mouse (y)
H=205 #Position of mouse (x)
dc = wx.MemoryDC()
dc.SelectObject(bitImg)#name of bitmap image
dc.SetPen(wx.Pen('#FF0000'))
#dc.SetBrush(wx.Brush('#aaffff'))
dc.SetBrush(wx.TRANSPARENT_BRUSH)
dc.DrawRectangle(W, H, 20, 20)# Drawing the rectangle using the W and H
# for the position
dc.SelectObject(wx.NullBitmap)
最初の2行は、wx.GetMousePositionから受け取ったX座標とY座標です。これは、画像の1つにあるタグの位置です。ただし、これらの点WとHは大きすぎて画面に表示されないため、長方形を描画すると画像に表示されません。WとHの両方を90に設定すると、画像上に小さな正方形が描画されます。
では、これらのwx.GetMousePosition座標を「dc」に収まるように変換するにはどうすればよいですか?または、マウスの座標を取得するための他の提案はありますか?