2011-10-03 109 views
4

我正在制作一个timelapse应用程序,并且需要每30ms绘制一个新帧。帧存储在独立存储中(它们是640x480)。绘制位图的最快方法?

我试着先将它们加载到MemoryStream中,然后转换为BitmapImage并指定为Image控件的源代码。但它太长了 - 大约需要55ms。我衡量,它不是从孤立的存储中读取,而是实际上将图像加载到花费时间最长的Image控件中。

有没有什么办法可以在Silverlight的windows phone上更快地绘制图像呢,还是应该考虑用XNA来做呢?

+2

你应该考虑用XNA来代替它。否则,你永远无法达到必要的表现水平。 –

+0

而不是每次加载新的图像,你可能会直接覆盖旧的图像?此外,性能将与您使用的手机型号密切相关。 – Seph

+0

位图中的数据类型是什么?他们是否喜欢幻灯片,或者你是否真的在流动一部真正低效的电影? –

回答

2

看看WriteableBitmap类和开源库WritableBitmapExWriteableBitmapEx中的Blit方法会将一个位图复制到另一个位图中。不知道它的速度是否足够满足您的需求,但对于我正在做的事情而言,速度非常快。