Compatibilidad con IWICDevelopRaw
Para permitir que las aplicaciones admitan el procesamiento RAW, se recomienda encarecidamente a los autores de códecs implementar todos los parámetros de IWICDevelopRaw. Para Windows 7, el componente de creación de imágenes de Windows (WIC) requerirá compatibilidad con todos los IWICDevelopRaw. Si el formato de archivo no admite todos estos parámetros, debe revisar el formato de archivo de imagen.
Para habilitar el procesamiento RAW básico en aplicaciones, los códecs deben admitir ajustes para la exposición (ExposureCompensationSupport) y el color (como KelvinWhitePointSupport y TintSupport). Además, la salida a espacios de color específicos y formatos de píxeles es muy recomendable. La compatibilidad con otros ajustes es, por supuesto, se recomienda y es necesaria para Windows 7.
El códec RAW debe proporcionar compatibilidad básica con la rotación de imágenes y la vista previa rápida. La rotación se puede especificar de dos maneras distintas:
- Método IWICDevelopRaw::SetRotation . Este método establece el ángulo de rotación deseado para la salida de las llamadas posteriores a CopyPixels.
- Método IWICBitmapSourceTransform::CopyPixels . El autor de la llamada puede establecer la opción dstTransform para indicar el ángulo de rotación deseado.
Estos dos enfoques difieren de las siguientes maneras:
- Solo se puede conservar la configuración de IWICDevelopRaw entre instancias del objeto descodificador.
- IWICBitmapSourceTransform::CopyPixels solo se aplica a esa llamada en particular; no hay persistencia de ningún tipo.
- IWICDevelopRaw proporciona un control mucho más preciso en la rotación. IWICBitmapSourceTransform::CopyPixels está restringido a incrementos de 90 grados.
Si se especifica la rotación en IWICDevelopRaw e IWICBitmapSourceTransform, el efecto de rotación es acumulativo. Por ejemplo, si IWICDevelopRaw especifica una rotación de 25 grados y IWICBitmapSourceTransform especifica una rotación de 90 grados, debería ocurrir lo siguiente:
- Las llamadas a IWICBitmapFrameDecode::CopyPixels deben aplicar una rotación de 25 grados (es decir, solo la cantidad especificada en IWICDevelopRaw).
- Las llamadas a IWICBitmapSourceTransform::CopyPixels con una cantidad dstTransform de 90 generan una rotación de 115 grados (25 + 90).
- De nuevo, solo se puede conservar la rotación de 25 grados especificada a través de IWICDevelopRaw::SetRotation .
En Windows Vista, los métodos IWICBitmapFrameDecode::GetThumbnail e IWICBitmapDecoder::GetPreview permiten a los llamadores obtener miniaturas incrustadas e imágenes de vista previa, respectivamente. Estos están diseñados para devolver vistas previas y miniaturas precalculadas de la secuencia de archivos de imagen. La generación de vistas previas o miniaturas "sobre la marcha" da como resultado un rendimiento deficiente en el Explorador de Windows y el Visor de fotos. El códec también debe proporcionar una manera de devolver rápidamente una imagen de resolución de pantalla actualizada cuando los usuarios realizan un control interactivo de la configuración de procesamiento.
Las llamadas a IWICDevelopRaw::SetRenderMode determinarán qué llamadas posteriores a IWICBitmapFrameDecode::CopyPixels devuelven (lo que favorece la velocidad o la calidad). Además, la interfaz IWICBitmapSourceTransform se puede usar para determinar si es necesario reducir el muestreo y puede aumentar el rendimiento cuando se pueda aplicar. La fidelidad de color de todas las imágenes debe ser comparable. Cuando se realizan cambios en la configuración de procesamiento, todas estas representaciones deben reflejar los cambios.
Temas relacionados