A través de investigaciones previas, descubrí que no es demasiado difícil establecer las propiedades de MetaData en una imagen. Por ejemplo, puedo leer una imagen JPEG en un objeto Bitmap y cambiar su fecha "Original Taken" a través del método SetPropertyItem de la imagen (ya he investigado el formato y la enumeración para hacer esto).Establecer metadatos JPEG: problemas de implementación
Sin embargo, aunque la parte real de Metadatos parece fácil, estoy frente a un par de irritantes cuestiones de aplicación:
1) Cuando llamo a Save() en el mapa de bits, no parece que el original de la imagen la configuración de codificación se utiliza. Como resultado, el nivel de compresión cambia (presumiblemente a algún valor predeterminado); Puedo ver que el tamaño del archivo se reduce considerablemente después de mi llamada a Save(). Sé que puede personalizar la configuración de codificación para una imagen dentro de la llamada a Guardar(), pero, sinceramente, solo quiero cambiar los metadatos de la imagen; ¿No hay alguna manera sencilla de guardar la imagen usando su configuración de codificación original? Incluso si pudiera hacer referencia directamente a la configuración de codificación existente de la imagen en la llamada a Guardar(), eso ayudaría.
2) Al parecer, el archivo original está bloqueado cuando lo lee en un objeto Bitmap. Como resultado, no puedo guardar la imagen con su nombre de archivo original sin muchos problemas: en la actualidad, estoy dibujando la imagen que leí del archivo en un mapa de bits fuera de la pantalla, desechando la imagen original y luego guardando la imagen. mapa de bits fuera de pantalla. Nuevamente, esto parece una gran cantidad de trabajo extra cuando todo lo que quiero hacer es actualizar los metadatos en un archivo de imagen.
Cualquier sugerencia que pueda ofrecer sería muy apreciada ... la cantidad de trabajo que tengo que hacer solo para actualizar los metadatos de un archivo JPEG (la mayoría de los cuales no tiene nada que ver con el cambio real de metadatos) me lleva para preguntarme si me faltan formas más fáciles o mejores de hacer esto.
JPEG es un formato con pérdida ** **, y cada vez que se guarda la información si no se pierden incluso si se utiliza la misma configuración. La única forma de evitar esto es usar una biblioteca que no descomprima la imagen. –