Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La interfaz IWICDevelopRaw expone la configuración que la aplicación puede usar para modificar el procesamiento de la imagen RAW. La configuración debe ser capaz de serializarse para que persistan entre sesiones. Aunque esto se puede hacer de varias maneras, se recomienda codificar estos datos de forma coherente con otros metadatos.
A continuación se muestran algunas directrices generales de implementación:
Cualquier configuración realizada a través de IWICDevelopRaw (por ejemplo, rotación o saldo blanco) debe evitar sobrescribir la configuración de la cámara o los datos "como captura", a menos que la etiqueta se use normalmente como "configuración actual". Por ejemplo, las etiquetas de orientación EXIF se pueden usar para conservar la rotación.
Es preferible no tener que guardar todo el archivo (incluidos los datos de píxeles de mosaico) cada vez que se pida que se serialice la configuración de IWICDevelopRaw .
El proceso de serialización de la configuración de IWICDevelopRaw generalmente seguirá este orden de eventos. La aplicación:
Crea una instancia de IWICBitmapDecoder en un archivo RAW.
Llama a IWICBitmapDecoder::GetFrame para obtener un IWICBitmapFrameDecode para el marco RAW.
Llama a QueryInterface en la interfaz IWICBitmapFrameDecode para la interfaz IWICDevelopRaw.
Llama a IWICDevelopRaw::GetCurrentParameterSet, que devuelve una interfaz IPropertyBag2 con todas las propiedades actuales almacenadas en él.
En este punto del proceso, el objetivo es serializar la configuración en la interfaz IPropertyBag2 en el archivo RAW. Para ello, es necesario girar un codificador, etc., que se detalla en los pasos siguientes.
Crea un IWICBitmapEncoder para el archivo RAW.
Llama a IWICBitmapEncoder::Initialize, pasando una secuencia nueva (en blanco) para codificar.
Llama a IWICBitmapEncoder::CreateNewFrame para crear un nuevo IWICBitmapFrameEncode para el marco RAW.
Llama a IWICBitmapFrameEncode::Initialize y pasa la interfaz IPropertyBag2 del paso 4.
Llama a IWICBitmapFrameEncode::WriteSource con IWICBitmapSource desde el marco de imagen RAW del descodificador.
Llama a IWICBitmapFrameEncode::Commit. A continuación, el códec serializa las propiedades en IPropertyBag2 del paso 8 en el archivo. Se supone que el método más común para serializar las propiedades es escribirlas como metadatos en el archivo.
Llama a IWICBitmapEncoder::Commit.
Llama a IStream::Commit en la secuencia del paso 6.
La configuración se serializa en el archivo.
Este método incurre en el costo de volver a escribir todo el archivo RAW cada vez que se serializa la configuración. Esto se puede evitar si implementa IWICFastMetadataEncoder o si el formato de archivo de imagen admite XMP o EXIF, ya que WIC proporciona IWICFastMetadataEncoder para ambos formatos. Además, si el códec escribe cambios al final del archivo de imagen, no terminará reescribir todo el archivo de imagen.
Los conjuntos de parámetros se cargan desde el estado serializado cuando la aplicación establece la enumeración WICRawParameterSet.WICUserAdjustedParameterSet en el método IWICDevelopRaw::LoadParameterSet . La marca WICRawParameterSet.WICUserAdjustedParameterSet hace referencia al último conjunto de parámetros guardado, por lo que una carga con esta marca debe dar lugar a la restauración de parámetros al estado guardado por última vez.
Tras la carga inicial, se debe cargar el último conjunto de parámetros guardados, si está disponible. Si no es así, la configuración "as-shot" se debe usar como valores preestablecidos en las variables de interfaz IWICDevelopRaw . Estas opciones de configuración como captura también se pueden cargar mediante la marca WICRawParameterSet.WICAsShotParameterSet .
El identificador WICRawParameterSet.WICAutoAdjustedParameterSet está diseñado para representar un valor de "Auto". El diseñador de códecs puede elegir cualquiera de los enfoques siguientes sobre cómo establecer parámetros IWICDevelopRaw cuando se realiza esta configuración:
- Realice una optimización algorítmica de algunos parámetros, como la exposición o el color. Esta es la forma en que auto funciona en editores de imágenes típicos y se basa principalmente en el análisis de datos de píxeles.
- Establezca la configuración de la cámara similar a cómo se comportaría una configuración automática. Esto es útil si la imagen se disparó en una configuración Manual y permite al usuario invalidar la configuración manual.
- No haga nada. No todos los controles deben establecerse cuando se selecciona Auto y es Correcto dejar la configuración sin cambios.
La Galería de fotos de Windows Vista y Galería fotográfica de Windows Live herramientas de edición y otras aplicaciones de edición usan la carga de parámetros auto de IWICDevelopRaw cuando el usuario selecciona Auto Correct para todos los ajustes de control de códec normales, como el color y la exposición para obtener los mejores resultados.
Temas relacionados