En algunos archivos .JPG (previsualizaciones EPS, generadas por Adobe Illustrator) en Windows 7 InPlaceBitmapMetadataWriter.TrySave() devuelve verdadero después de algunas llamadas SetQuery(), pero no hace nada.InPlaceBitmapMetadataWriter.TrySave() devuelve verdadero pero no hace nada
Ejemplo de código:
BitmapDecoder decoder;
BitmapFrame frame;
BitmapMetadata metadata;
InPlaceBitmapMetadataWriter writer;
decoder = BitmapDecoder.Create(s, BitmapCreateOptions.PreservePixelFormat | BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.Default);
frame = decoder.Frames[0];
metadata = frame.Metadata as BitmapMetadata;
writer = frame.CreateInPlaceBitmapMetadataWriter();
try {
writer.SetQuery("System.Title", title);
writer.SetQuery(@"/app1/ifd/{ushort=" + exiftagids[0] + "} ", (title + '\0').ToCharArray());
writer.SetQuery(@"/app13/irb/8bimiptc/iptc/object name", title);
return writer.TrySave();
}
catch {
return false;
}
Puede reproducir el problema (si tiene Windows 7) mediante la descarga de la muestra de la imagen y el uso de este ejemplo de código para establecer el título de esta imagen. La imagen tiene suficiente espacio para los metadatos, y este ejemplo de código funciona bien en mi WinXP. El mismo código funciona bien en Win7 con otros archivos .JPG.
Todas las ideas son bienvenidas :)
TrySave() returns _true_! Pero no hace nada. Entonces no hay manera de averiguar si los metadatos están escritos o no. – mephisto123
Lazo, no hay método de guardado para el codificador en .NET 4. – Roger