支持 IWICDevelopRaw
为了使应用程序能够支持 RAW 处理,强烈建议编解码器作者实现 IWICDevelopRaw 的所有参数。 对于 Windows 7,Windows Imaging Component (WIC) 将需要支持所有 IWICDevelopRaw。 如果文件格式不支持所有这些参数,则应修改图像文件格式。
若要在应用程序中启用基本 RAW 处理,编解码器必须支持调整曝光 (ExposureCompensationSupport) 和颜色 (,例如 KelvinWhitePointSupport 和 TintSupport) 。 此外,强烈建议输出到特定颜色空间和像素格式。 当然,建议支持其他调整,并且需要 Windows 7。
RAW 编解码器必须为图像旋转和快速预览提供基本支持。 可以通过两种不同的方式指定旋转:
- IWICDevelopRaw::SetRotation 方法。 此方法设置对 CopyPixels 的后续调用输出的所需旋转角度。
- IWICBitmapSourceTransform::CopyPixels 方法。 调用方可以设置 dstTransform 选项以指示所需的旋转角度。
这两种方法在以下方面有所不同:
- 只有 IWICDevelopRaw 设置可以跨解码器对象的实例持久保存。
- IWICBitmapSourceTransform::CopyPixels 仅适用于该特定调用;没有任何持久性。
- IWICDevelopRaw 在旋转中提供了更精细的粒度控制。 IWICBitmapSourceTransform::CopyPixels 被限制为 90 度增量。
如果在 IWICDevelopRaw 和 IWICBitmapSourceTransform 中都指定了旋转,则旋转效果是累积的。 例如,如果 IWICDevelopRaw 指定 25 度旋转, 而 IWICBitmapSourceTransform 指定 90 度旋转,则应发生以下情况:
- 调用 IWICBitmapFrameDecode::CopyPixels 应应用 25 度旋转 (,即仅应用 IWICDevelopRaw) 中指定的数量。
- 调用 dstTransform 量为 90 的 IWICBitmapSourceTransform::CopyPixels ,导致 115 度旋转 (25 + 90) 。
- 同样,只能保留通过 IWICDevelopRaw::SetRotation 指定的 25 度旋转。
在 Windows Vista 中, IWICBitmapFrameDecode::GetThumbnail 和 IWICBitmapDecoder::GetPreview 方法分别允许调用方获取嵌入的缩略图和预览图像。 它们旨在从图像文件流返回预先计算的预览和缩略图。 “动态”生成预览或缩略图会导致 Windows 资源管理器和照片查看器性能不佳。 当用户对处理设置执行交互式控制时,编解码器还必须提供一种快速返回更新的屏幕分辨率图像的方法。
调用 IWICDevelopRaw::SetRenderMode 将确定 IWICBitmapFrameDecode::CopyPixels 的后续调用返回 (有利于速度或质量) 。 此外,IWICBitmapSourceTransform 接口可用于确定是否需要进行向下采样,并且可以在应用时提高性能。 所有图像的颜色保真度应是可比的。 对处理设置进行更改时,所有这些呈现都应反映更改。
相关主题