【问题标题】:Render images progressively in a MFC based application在基于 MFC 的应用程序中逐步渲染图像
【发布时间】:2015-03-23 02:10:23
【问题描述】:

浏览器可以逐步呈现渐进式图像。 并且图像只有在渐进式编码的情况下才能被渐进式解码。

例如,使用“隔行扫描”选项保存的 GIF 或 PNG 图像,或使用“逐行扫描”选项保存的 JPEG 图像。

我想像浏览器一样在基于 MFC 的应用程序中呈现渐进式图像。

Windows Imaging Component 提供 IWICProgressiveLevelControl 接口来逐步解码图像。

但我找不到任何示例来展示如何使用 IWICProgressiveLevelControl 同时逐步流式传输和显示图像。

任何建议将不胜感激。谢谢。

【问题讨论】:

    标签: image mfc wic progressive


    【解决方案1】:

    这里有一个很好的示例:

    https://code.msdn.microsoft.com/Windows-Imaging-Component-3af3cd49

    一旦您使用IWICProgressiveLevelControl::SetCurrentLevel 选择扫描,解码器将正常运行,但仅使用直到并包括您选择的扫描。因此,任何对CopyPixels 或链中任何IWICBitmapSource 组件的调用都将在选定的扫描级别接收完全解码的图像。

    如示例所示,诀窍在于,如果您不知道完整文件可用,则不能使用IWICProgressiveLevelControl::GetLevelCount 并立即选择最大级别。作为示例状态的文档,

    IWICProgressiveLevelControl 允许您控制在帧解码中使用的渐进细节级别。它还允许您查询文件中渐进级别的总数;但是,不建议在 JPEG 图像上使用此方法,因为在下载整个图像之前不知道总数,这违背了渐进式解码的目的。相反,此示例演示了在 WIC 返回 WINCODEC_ERR_INVALIDPROGRESSIVELEVEL 之前迭代地请求增加详细级别的推荐做法。

    【讨论】:

      猜你喜欢
      • 2016-02-21
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多