![]() |
![]() |
![]() |
|
Свойства картинки, данные GPS | ☑ | ||
---|---|---|---|---|
0
Nikoss
20.04.12
✎
13:35
|
в общем есть фотка с galaxy Note, там в свойствах изображения есть широта и долгота... как программно достать значения оттуда?
пробовал, как делали тут v8: размер картинки из 1С Шел = Новый COMОбъект("Shell.Application"); Папка = Шел.NameSpace(ДиалогОткрытияФайла.Каталог); Файл = СтрЗаменить(ДиалогОткрытияФайла.ПолноеИмяФайла,"\","" ""); Файл = Папка.ParseName(СтрПолучитьСтроку(Файл,СтрЧислоСтрок(Файл))); Для Сч=-100000 По 100000 Цикл Попытка Значение = Папка.GetDetailsOf(Файл,Сч); Если ЗначениеЗаполнено(Значение) Тогда Сообщить(Строка(Сч) + ": " + Значение); КонецЕсли; Исключение КонецПопытки; КонецЦикла; так большинство свойств достается, но нет широты и долготы. |
|||
1
oleg_km
20.04.12
✎
13:56
|
Возможно это пользовательские свойства и у них индекс больше 100000, например с 0x8000000
|
|||
2
Nikoss
20.04.12
✎
14:10
|
(1), сейчас попробовал 10млн - пусто
|
|||
3
Grobik
20.04.12
✎
14:19
|
||||
4
Nikoss
20.04.12
✎
14:27
|
(3), а можете подсказать как это понять :) я в англ. не силен, да и еще то что есть там не совпадает с моим.
например у меня есть при сч = 12 : ?20.?04.?2012 ??5:59 может я чтото не туда пишу? |
|||
5
Grobik
20.04.12
✎
14:30
|
Оригинал картинки на файло обменник и ссылку. Самому интересно.
|
|||
6
Nikoss
20.04.12
✎
14:34
|
||||
7
Grobik
20.04.12
✎
18:14
|
Занятно нету там его. Даже поля такого.
Для Сч=0 По 300 Цикл Попытка Значение = Папка.GetDetailsOf(Файл,Сч); Если ЗначениеЗаполнено(Значение) Тогда Сообщить(Строка(Сч) + ": " + Значение); КонецЕсли; Исключение КонецПопытки; КонецЦикла; С неправильным путем выдает все 267 вариантов. В которых широты и долготы нет. Хотя должно выдавать все, что показывает эксплорер а тот координаты показывает. |
|||
8
Grobik
20.04.12
✎
20:21
|
Короче никто этого ни на одном языке не делал. Копать в сторону GetDetailsEx и всяких выражений типа{9B174B33-40FF-11d2-A27E-00C04FC30871}
|
|||
9
Nikoss
21.04.12
✎
16:32
|
плохи дела... в понедельник уже нужно чтоб готово было, видимо выходные испорчены.
|
|||
10
aleks-id
21.04.12
✎
16:52
|
Процедура Сформировать()
ПутьКФайлу = "D:\Downloads\Картинки\"; // обязательно заканчивать слэшем ИмяФайла = "281af404c604206bc45eb6b7cea.jpg"; Попытка ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ScrptCtrl.AddCode(" |Function GetEXIFDate() |Set objShellApp = CreateObject(""Shell.Application"") |Set objFolder = objShellApp.NameSpace(""" + ПутьКФайлу + """) |Set objItem = objFolder.ParseName(""" + ИмяФайла + """) | GetEXIFDate = objFolder.GetDetailsOf(objItem, 31) |End Function"); РезультатСкрипта=СокрЛП(ScrptCtrl.Run("GetEXIFDate")); Сообщить(РезультатСкрипта); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецПроцедуры |
|||
11
Grobik
22.04.12
✎
13:37
|
(10) Эта переписанная с семерочного примера процедура выдает то-же самое, что и (1) только с семерочным гемором. GetDetailsOf выдает 267 параметров файла, данных геотегирования там нет. Есть в GetDetailsEx который еще никто для этих целей толком не заюзал. Так, что или читать вдумчиво сайт микрософта, там примеры есть но я с ходу не разобрался или использовать сторонние длл, которые придется регистрировать, либо самому читать файл и вычленять оттуда. Лучше бы автор разобрался с GetDetailsEx и нам рассказал, там много вкусностей есть.
|
|||
12
Grobik
22.04.12
✎
13:38
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |