Я понимаю, что этот ответ не касается .NET Framework v2, но я подумал, что стоит документировать это для тех из вас, кто использует .NET 3.5 или выше. Это может также работать в 3.0, но я там не проверял.
Следующий вызов функции вернет ключевые слова, встроенные в изображение JPEG:
private string[] GetKeywords(string filespec)
{
BitmapDecoder decoder = new JpegBitmapDecoder(new FileStream(filespec, FileMode.Open), BitmapCreateOptions.None, BitmapCacheOption.None);
BitmapMetadata meta = (BitmapMetadata)decoder.Frames[0].Metadata;
return meta.Keywords.ToArray<string>();
}
BitmapDecoder и класс BitmapMetadata содержатся в сборке, которая обычно используется в WPF, поэтому для использования этих классов вам нужно будет сослаться на следующие сборки:
- PresentationCore
- WindowsBase
Я успешно использую этот подход в приложении WinForm, но подозреваю, что он может быть адаптирован для других типов приложений. Кроме того, вы можете видеть, что абстрактному классу «BitmapDecoder» в этом примере назначен экземпляр JpegBitmapDecoder, но вы можете получить экземпляр другого декодера для вашего типа изображения (также поддерживаются TIFF, GIF, PNG, BMP и WMP).