|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
У меня была задача номер 1. Назначить новой картинке свойства, которые отображаются в ее свойствах (каламбурчик-с ). Типа всяких названий камер, даты съемки и тому подобного. Это я сделал Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Что мне понравилось, что размеры картинки не тупо скопировались, а стали правильными. Но тут меня обуяла гордыня и я решил некоторые свойства поменять. Например, вставить себя в авторы (все по-честному - это мои фотки), или сделать название на русском. Если получится, то можно замахнуться на теги и на комменты! Самое лучшее что я нашел в интернете (Cлава нашему форуму! Ура!) Чтение File Info из jpg Из своих исследований и из этого топика я вынес следующее: Автор хранится то ли в PropertyItem, где Id=40093 (это из топика), то ли PropertyItem, где Id=315 (это из моих исследований). Но тут засада и выскочила. В Win7 в проводнике можно записать автора вручную. Если так сделать, то PropertyItem с id=315 появляется. PropertyItem c Id=40093 вообще у одной камеры есть, а у другой нет. У меня после ручного ввода с id=315 появлялся и я ему прекрасно менял значения. Итак, если их нет? Казалось бы можно просто добавить в PropertyItems новый экземпляр с нужным Id, но оказалось, что у PropertyItem нет конструктора. Я придумал "хитрый" ход. Нахожу "ненужный" экземпляр и меняю ему ему Id и свойства, но это как-то неаккуратно. Вдруг он нужен где-то, а я его меняю? Вдруг он когда-нибудь автоматически сбросит значения, как сбрасываются и заменяются значения размеров? Ведь вручную PropertyItem с Id=315 как-то добавляется!!! Так как же мне правильно увековечить свое имя в свойствах фотки? ============ Примечание Функция resizeImage, которую я нагло спер где-то в интернете Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 20:24 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Изопропилбыло бы не вредно ознакомиться со спецификацией EXIF а из тулзов рекомендую exiftool 1. Где Вы рекомендуете с ней ознакомится? Как мне поможет полное знание этого стандарта, если я не могу добавить к описанию пункт стандартными средствами C#? 2. Мне не нужны тулзы. Все нужное мне прекрасно делается в Проводнике Win 7. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 20:35 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Cat21. Где Вы рекомендуете с ней ознакомится? http://www.exiv2.org/tags.html Cat2Как мне поможет полное знание этого стандарта, если я не могу добавить к описанию пункт стандартными средствами C#? описание стандарта позволяет осознать разницу между 315 и 40093 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 20:42 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
ИзопропилCat21. Где Вы рекомендуете с ней ознакомится? http://www.exiv2.org/tags.html Cat2Как мне поможет полное знание этого стандарта, если я не могу добавить к описанию пункт стандартными средствами C#? описание стандарта позволяет осознать разницу между 315 и 40093 Спасибо, осознал А толку то, если ни 315, ни 40093 не могу программно создать ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 20:47 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Cat2А толку то, если ни 315, ни 40093 не могу программно создать мне как-то ближе http://freeimage.sourceforge.net/index.html c# враппер имеется ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 20:58 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Cat2, Буквально недавно копался с PropertyItem -хозяйством по своим делам. Посмотри, никак не поможет? Как в .Net выкапывать свойства и значения из PropertyItems GDI+-совместимого файла? Там под спойлером целая простыня еще из этих тагов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 21:08 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Дмитрий77Cat2, Буквально недавно копался с PropertyItem -хозяйством по своим делам. Посмотри, никак не поможет? Как в .Net выкапывать свойства и значения из PropertyItems GDI+-совместимого файла? Там под спойлером целая простыня еще из этих тагов. Как выкапывать я тоже нашел . Это код не выводит ничего нужного мне со свежей фотки с камеры Nikon Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 21:15 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
ИзопропилCat2А толку то, если ни 315, ни 40093 не могу программно создать мне как-то ближе http://freeimage.sourceforge.net/index.html c# враппер имеется Там под юникс. Уж ради этой мелкой задачи я его ставить не буду ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 21:24 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Cat2Там под юникс. Уж ради этой мелкой задачи я его ставить не буду неправда - есть вариант под винду в виде exe ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 21:27 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
ИзопропилCat2Там под юникс. Уж ради этой мелкой задачи я его ставить не буду неправда - есть вариант под винду в виде exe это я по exiftool dll c freeimage под винду есть с шарповым враппером - http://freeimage.sourceforge.net/download.html а что касается никона - он может увековечить автора и в 37510 User Comment ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 21:30 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
ИзопропилИзопропилпропущено... неправда - есть вариант под винду в виде exe это я по exiftool dll c freeimage под винду есть с шарповым враппером - http://freeimage.sourceforge.net/download.html а что касается никона - он может увековечить автора и в 37510 User Comment Ну ты и задачки задаешь! В коде freeimage слово ProprtyItem не найдено,да т вообще я плюсы давно и надежно забыл. >>а что касается никона - он может увековечить автора и в 37510 User Comment Не. Там тоже пусто ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 21:58 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Cat2В коде freeimage слово ProprtyItem не найдено, а и не должно быть - за пропертиитемами скрываются просто exif данные плюсы не нужны - там же есть сишарпная обёртка кинь ссылку на jpeg - гляну что там внутри ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 22:04 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Cat2 Но тут меня обуяла гордыня и я решил некоторые свойства поменять. Например, вставить себя в авторы (все по-честному - это мои фотки), или сделать название на русском. Если получится, то можно замахнуться на теги и на комменты! Самое лучшее что я нашел в интернете (Cлава нашему форуму! Ура!) Чтение File Info из jpg ... Рекомендую ExifLibrary for .NET Очень редкая фича - вытаскивать и редактировать EXIF параметры без создания bitmap. Заодно очень полезно - довольно полная enum-спецификация EXIF-items. Ну и главное - абсолютно открытый код без всяких внешних "волшебных" dll-врапперов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 22:05 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Cat2Как выкапывать я тоже нашел . Других задач передо мной к сожалению не стояло. Все что я делал - просто сравнивал исходный файл с заданным target форматом, читая его тэги (компрессия, размер изображения, разрешение) и при несоответствии подгонял формат к заданному средствами GDI+ (Graphics то бишь). Одно могу сказать с уверенностью. Чтобы на эту тему какие-то задачи нормально решать, .Net -доков недостаточно. Надо читать родные GDI+ доки, искать C++ примеры, а м.б. и углубляться в спецификацию этого дела. Меня (для моей задачи) спасло только то что были "native" - коды. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 22:27 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Дмитрий77а м.б. и углубляться в спецификацию этого дела. только это и нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.05.2015, 22:34 |
|
Назначение свойств изображению
|
|||
---|---|---|---|
#18+
Проблема решена Цитата из ПТ Cat2H.A.M.ради интереса зашел в MSDN, ба да это прелестно: https://msdn.microsoft.com/en-us/library/system.drawing.image.getpropertyitem.aspx It is difficult to set property items, because the PropertyItem class has no public constructors. One way to work around this restriction is to obtain a PropertyItem by retrieving the PropertyItems property value or calling the GetPropertyItem method of an Image that already has property items. Then you can set the fields of the PropertyItem and pass it to SetPropertyItem. Клевый API (: кароче делаешь картинку 1х1 и ставишь там какой-нить проперти. Ложишь в ресурсы и из нее тащишь объекты PropertyItem. Ну просто великолепно! Индусы рулят. Спасибо, что понял за меня, так как прочитать я сам смог Тупо так и сделал. Рисунок 1х1 в ресурсы, записал вручную ему нужные свойства, а в проге или просто вставляю или перед этим меняю значения. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2015, 09:46 |
|
|
start [/forum/topic.php?fid=20&fpage=85&tid=1401534]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
98ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 202ms |
0 / 0 |