如何将位图绘制到DC,同时将其旋转指定的角度?
答案 0 :(得分:2)
我不确定这是做到这一点的最好方法,但一种选择是将其转换为带有ConvertToImage(wxWidgets help)的wx.Image,然后使用{{ 3}} function(rotate)。然后,您可以(如有必要)使用wxWidgets help(ConvertToBitmap)将其转换回来。
我看不到可用于将wxWidgets help应用于绘图上下文(DC)的明显函数,但某处某处可能有...
希望有所帮助。
答案 1 :(得分:1)
我同意Al - 他应该得到答案,但是这个(公认的未经测试的)代码片段应该按照你的要求行事:
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 )
有一点需要注意,the docs:
...使用wxImage是在wxWidgets中加载图像的首选方式,但资源除外......
是否有特殊原因将其加载为位图而不是wx.Image?
答案 2 :(得分:1)
更好的方法是使用图形上下文,如果你想要一般的轮换,例如旋转位图或文本或任何其他绘图路径
gc = wx.GCDC(dc)
gc.Rotate(angle)
gc.DrawText("anurag", 100, 100)