Как стать автором
Обновить

Комментарии 20

НЛО прилетело и опубликовало эту надпись здесь
Мне тоже в один прекрасный момент потребовалось использовать встроенные в WPF конструкты для работы с изображениями. Действительно, товар сыроват, и хотя возможность рендерить любой XAML-контент в битмап это хорошая возможность, но количество «подводных камней» просто поражает.

Спасибо за пост, ждем следующих.
Да, я тоже слышал о такой возможности, но пока не доводилось пробовать пользоваться.

А топик вызвал очень противоречивую реакцию, собрал уже 12 минусов ) Наверное ненавистники .NET технологии отыгрываются.
А топик вызвал очень противоречивую реакцию, собрал уже 12 минусов ) Наверное ненавистники .NET технологии отыгрываются

Ну, это же Хабр :-)
Пишите ещё! Как минимум — по одному топику мало оценивать очевидность описываемых вещей…
А что касается данной статьи — то для меня было очень интересно в связи с актуальностью задачи, нужно было написать тулзу для прописывания EXIF-данных для последующего их считывания на php. Нашёл море примеров как читать метаданные (облазил www.codeproject.com), но не нашёл как записывать их. Спасибо вам за пример, сегодня попробую!
Спасибо! Рад, что кому-то информация пригодилась :) Для этого писал.

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

Еще (на отдельный топик не тянет) немного о многопоточности хотел рассказать, там есть пара тонкостей (о многопоточности вообще есть целая хорошая статья на русском, гуглится на раз-два, но есть именно пара моментов, которые не так просты и очевидны).

Какая тематика вам вообще больше интересна?
>Какая тематика вам вообще больше интересна?

Полноценные темплейты были бы действительно интересны.

>немного о многопоточности хотел рассказать, там есть пара тонкостей (о многопоточности вообще есть целая хорошая статья на русском, гуглится на раз-два…

Многопоточность в WPF? Она ведь запрещена в WPF, поскольку приложение работате STAThread, а вся синхронизация работы с другими потоками осуществляется через Dispatcher… Или я чего упустил?
Именно о синхронизации между UI потоком и другими потоками при использовании WPF я и хотел рассказать. Там в принципе тоже самое, что и в WinForms, но в любом случае не сразу догадаешься до некоторых вещей.
С многопоточностью тоже столкнулся, когда писал программу выгрузки дампа базы на хостинг-сервер, тоже было прочитано не мало статей ))
А вот с темплейтами не разбирался, было бы интересно почитать!
Статью бы да пол года назад))))) Сам через все прошел — тогда думал что задачка на пол часа оказалась значительно больше.
InPlaceMetadataWriter тогда не заметил — это полезная новая информация — буду смотреть на днях. Спасибо.

От себя хочу добавить что многие программы берут что-то одно из XMP, IPTC и EXIF и плюют на приоритеты. Потому в своем софте при записи я пишу (а мне надо было работать с ключевыми, заголовком и описаниями) три раза в каждый формат явно иначе если файл был создан другой программой а я изменил метаданные — то могут получиться противоречивые метаданные.
У меня все тоже самое. Пишу во всех форматах. И нужны тоже ключевики, заголовок и описание. Ну и еще служебная инфа, ее пишу в user comment в экзифе.

Про приоритеты писал касательно именно BitmapMetadata — он читает все три варианта метаданных.

А другие программы кто в лес кто по дрова. Чаще всего берут только экзиф или только iptc.
И еще бы наверное правильно говорить что XMP это не xml а RDF представленный в форме XML — в этом есть некоторые нюансы которые не заметны в конкретной задаче.
Спасибо за замечание, исправил.
Сам не очень вникал в тонкости XMP, т.к. по сути мне были нужны в первую очередь именно EXIF и IPTC :)
Спасибо, полезная информация.
Пишите, пожалуйста, и побольше.
Офигенная статья! Пишите больше!
Я некоторое время назад тоже столкнулся с необходимостью читать тэги из jpg. Провозился пару дней в поисках готовых натинвых решений на c#. Потом плюнул, скачал exiftool и написал за пару часов обертку. О своем выборе не жалею.
У меня кстати тоже возникало желание написать обертку к решению не на C#, но как то все таки разобрался с WPF :)
Кстати
Провозился всю ночь с вот этими строками:
metadata.SetQuery("/app1/ifd/PaddingSchema:Padding", 2048);
metadata.SetQuery("/app1/ifd/exif/PaddingSchema:Padding", 2048);
metadata.SetQuery("/xmp/PaddingSchema:Padding", 2048);

Пока явно не указал тип uint для 2048
И еще
В статье не правильная ссылка на перечень запросов, сейчас она находится тут
Но и даже по этой ссылке нет еще одного нужного запроса:
metadata.SetQuery(@"/app13/irb/8bimiptc/iptc/Object Name", Title);

Запись в поле Object Name
Хотя многие программы предпочитают именно это поле в качестве названия изображения
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории