【问题标题】:Fastest way to draw a bitmap?绘制位图的最快方法?
【发布时间】:2011-11-29 16:30:32
【问题描述】:

我正在开发一个延时摄影应用程序,它需要每 30 毫秒绘制一次新帧。帧存储在隔离存储中(它们是 640x480)。

我尝试先将它们加载到 MemoryStream 中,然后转换为 BitmapImage 并指定为 Image 控件的 Source。但它太长了——大约需要 55 毫秒。我测量过,它不是从隔离存储中读取的,它实际上是将图像加载到 Image 控件中,耗时最长。

有什么方法可以在 windows phone 上使用 silverlight 更快地绘制图像,或者我应该考虑使用 XNA 这样做吗?

【问题讨论】:

  • 您应该考虑改为在 XNA 中进行。否则,您将永远无法达到必要的性能水平。
  • 不是每次都加载新图像,您可以直接覆盖旧图像吗?此外,性能将与您使用的手机型号密切相关。
  • 位图中的数据类型是什么?它们是像幻灯片一样,还是你在有效地流式传输一部非常[非常]低效的电影?
  • @ClausJørgensen 那我试试看。
  • @Seph 我试过了,有同样的性能问题。

标签: c# silverlight performance image windows-phone-7


【解决方案1】:

看看WriteableBitmap 类和开源库WritableBitmapExWriteableBitmapEx 中的 Blit 方法会将一个位图复制到另一个位图。不确定它是否足够快满足您的需求,但对于我正在使用的它来说非常快。

【讨论】:

    猜你喜欢
    • 2011-10-14
    • 2013-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多