Как изменить заголовок файла JPG, тему, комментарии и теги/ключевые слова?

Как редактировать заголовок файла JPG, тему, комментарии и теги/ключевые слова?*

Я уже пытался задать этот вопрос здесь:

Предоставленная информация Exif была полезной, но, в конце концов, не разрешила настоящую загадку, над которой я работал. Поэтому я возьму другой угол при описании желаемого результата:

Я хочу, чтобы мое приложение VB.NET позволяло мне редактировать следующие данные Jfile (см. изображение):

Название, тема, комментарии и теги/ключевые слова

Кто-нибудь может объяснить, как редактировать эти поля через VB.net в Visual Studio?

РЕДАКТИРОВАТЬ:

Конечная цель состоит в том, чтобы использовать созданный мной просмотрщик/редактор изображений для сортировки тысяч изображений случайного веб-мусора, который я собирал на протяжении многих лет. После просмотра изображения (скажем, «00001.jpg») и выяснения, что это такое («потолочный кот отправляет сыну» изображение лол-кота), я хочу ввести описание (уже сделанное в форме). Когда я нажимаю Enter, я хочу переименовать файл (с «00001.jpg» на «ceiling-cat-sends-son.jpg», затем заполнить поля ключевых слов, заголовка, темы и комментариев теми же данными: «ceiling кот посылает сына».

Это поможет с локальной индексацией и с моей (позже) автоматизацией ссылочной базы данных SQL-сервера для использования с поиском по сайту на моем веб-сайте. ЕДИНСТВЕННАЯ вещь, которую я не могу понять, это как изменить эти четыре поля, как если бы я щелкнул файл правой кнопкой мыши и добавил ключевые слова.


person Paul Mortenson    schedule 03.02.2011    source источник
comment
Хотя вы, безусловно, можете напрямую изменять заголовки изображений, я рекомендую вместо этого создавать отдельные записи метаданных. Вы можете создать запись, в которой будет храниться такая информация, а также путь к файлу. Преимущество этого заключается в возможности выполнять поиск без необходимости каждый раз проверять заголовки каждого отдельного файла изображения.   -  person Daniel T.    schedule 04.02.2011
comment
Понял. И Согласен. План состоит в том, чтобы переименовать каждое из тысяч изображений, по одному, путем визуального осмотра, а затем ввода описания. Я могу легко отправить это в базу данных SQL, но я просто надеюсь одновременно добавить те же данные к самому изображению, поэтому я просматриваю изображение только один раз. Таким образом, если изображение будет отправлено по электронной почте в другом месте, его все равно можно будет легко найти. Итак, есть идеи, как это сделать?   -  person Paul Mortenson    schedule 05.02.2011


Ответы (1)


Я могу предложить вам только отправную точку, так как я не использую VB.Net и читаю только данные EXIF. В С#, если вы открываете файл в экземпляре System.Drawing.Image, используя:

Image image = System.Drawing.Image.FromFile("path/to/file.jpg");

Вы можете получить доступ к необработанным данным EXIF, используя image.GetPropertyItem(0x0112), где список всех доступных элементов свойств указан здесь:

http://msdn.microsoft.com/en-us/library/ms534418%28VS.85%29.aspx

Точно так же есть метод image.SetPropertyItem(0x0112), но я думаю, что он установит его только в памяти, и вам придется сохранить копию изображения, чтобы записать его. Я думаю, что вам нужна возможность изменять EXIF, не касаясь фактического изображения, что я не знаю, как это сделать.

Использование метаданных

Как я уже сказал в своем комментарии, я рекомендую вместо редактирования информации заголовка изображения создать класс Media, который содержит такую ​​информацию:

public class Media
{
    public string Title { get; set; }
    public string Subject { get; set; }
    public string Comments { get; set; }
    public string[] Tags { get; set; }
    public string PathToFile { get; set; }
}

Затем вы сохраните эту запись в базе данных, что значительно облегчит поиск. Если вам нужен реальный файл, используйте свойство PathToFile, чтобы найти его.

person Daniel T.    schedule 03.02.2011