在我的应用程序中,我有一个与wxWindowDC和wxMemoryDC关联的面板。 我必须在bg颜色的bg颜色上绘制各种东西,在bg颜色bg图像的顶部和顶部的bg图像上我必须绘制一些文本等。
我将所有这些东西存储到内存直流中,最后在油漆处理程序中将内存直流复制到窗口直流。
但是我坚持这个过程,当我有一个.gif(有多个帧)并且我试图在DC上显示这个gif图像那时它只显示那个gif图像的一帧(它变成了一个普通的静止图像而不是动画图片。)
如何将整个gif图像存储在内存直流中,并在直流上显示完整的gif图像(带动画)。
我无法使用wx.AnimateCrl(),因为我需要在memoryDC中使用该图像。
任何帮助都非常明显。
答案 0 :(得分:2)
所以你应该做的是使用wx.animate.Animation获取GIF的帧并使用定时器在给定的DC上逐个绘制它们。
e.g。在ON_PAINT事件中执行类似的操作
ani = wx.animate.Animation("anim.gif")
frameImage = ani.GetFrame(cur_frame)
bmp = frameImage.ConvertToBitmap()
dc.DrawBitmap(bmp, 0, 0)