我有一个用wxpython编写的视频播放器,并将当前的FPS覆盖到视频上。
我的文字是黑色的,所以如果视频足够暗,则FPS计数器不可见。
我正在寻找一种用大纲绘制文字的方法,这样无论视频显示的是什么,它都会突出。例如。我想要带有白色轮廓的黑色文字。
我目前正在直接将文字绘制到DC上,如下所示:
dc.DrawBitmap(self.img,0,0)
dc.DrawText(str(self.frames),0,0)
感谢您的帮助!
答案 0 :(得分:1)
根据字体选择或字体对中的选项,你可以选择任何不错的内置解决方案,一个用于绘制轮廓,另一个用于绘制内部。
如果您只显示每秒帧数值且仅使用数字0..9和'。'然后使用小位图为自己在图像编辑器中创建的数字,使用alpha,以便只显示中心区域和轮廓。
如果你想要任意文字,那就更有意义了。以编程方式生成带有轮廓的字符。使用wxMemoryDC将未显示的字体绘制到位图,转换为wxImage,GetData()以获取原始数据,使用http://en.wikipedia.org/wiki/Sobel_filter添加轮廓 - 然后您可以创建部分透明的位图以覆盖到你的DC。如果你想要对数字进行很好的抗锯齿处理,那么它们的大小将是你使用的两倍,并使用5x5内核。