Имя: Пароль:
1C
1С v8
Как получить характеристики файла jpg из Свойства-Подробно?
0 Kaban
 
04.05.20
01:26
Если на файле-изображении щёлкнуть правой кнопкой мыши, нажать Свойства и перейти на вкладку "Подробно", там будут такие характеристики, как "Дата съемки", "Автор", модель фотоаппарата и тд
Как их можно вытащить оттуда?
Стандартный "Файл" этого не показывает.
FSO = Новый COMОбъект("Scripting.FileSystemObject");
File = FSO.GetFile("C:\Users\admin\Desktop\Новая папка\5015-0029.jpg");
тоже не все показывает
Может кто-то заморачивался
1 Aleksey
 
04.05.20
03:26
http://catalog.mista.ru/public/195840/
Первая ссылка в яндексе
2 trdm
 
04.05.20
07:45
Если (вРасширение = "png") ИЛИ (вРасширение = "bmp")  ИЛИ (вРасширение = "jpg") Тогда
                Попытка
                    вИмяФайлаВХранилище = СокрЛП(псЭлемент.Код)+"." + псЭлемент.Расширение;
                    вИмяФайлаВХранилище = СокрЛП(вИмяФайлаВХранилище);
                    вИмяФайлаВХранилищеП = глКаталогКартинокФайлов+СокрЛП(псЭлемент.Код)+"." + псЭлемент.Расширение;
                    Если ФС.СуществуетФайл(вИмяФайлаВХранилищеП) = 1 Тогда                        
                        Shell = CreateObject("Shell.Application");
                        Folder = Shell.Namespace(глКаталогКартинокФайлов);
                        вИтемФайл = Folder.Items().item(вИмяФайлаВХранилище);
                        // Folder.GetDetailsOf(Folder.Items().item(СокрЛП(вИмяФайлаВХранилище)), 10) = "325 x 600"
                        вСимворР = "x";
                        вРазмеры = Folder.GetDetailsOf(вИтемФайл, 10);
                        вВысота = Число(Folder.GetDetailsOf(вИтемФайл, 26));
                        вШирина = Число(Folder.GetDetailsOf(вИтемФайл, 27));
                        Если вВысота*вШирина = 0 Тогда
                            Если ПустоеЗначение(вРазмеры) = 0 Тогда
                                вШирина = Число(СокрЛП(глСлеваОт(вРазмеры,вСимворР)));
                                вВысота = Число(СокрЛП(глСправаОт(вРазмеры,вСимворР)));
                            КонецЕсли;
                        КонецЕсли;
                        псЭлемент.Ширина = вШирина;
                        псЭлемент.Высота = вВысота;
                    КонецЕсли;
                Исключение
                    Сообщить(ОписаниеОшибки()+" [20161114-1632]" + вИмяФайлаВХранилище);
                КонецПопытки;
            КонецЕсли;
3 oleg_km
 
04.05.20
12:16
Если подключить дотНет по методу Сергея Смирнова, то можно использовать возможности дотНета:

                using (FileStream Foto = File.Open(file, FileMode.Open, FileAccess.Read))
                {
                    BitmapDecoder decoder = JpegBitmapDecoder.Create(Foto, BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.Default);
                    BitmapMetadata props = (BitmapMetadata)decoder.Frames[0].Metadata.Clone();
                    dt = DateTime.Parse(props.DateTaken);
                    FileInfo fi = new FileInfo(file);

                    newFile = fi.DirectoryName + @"\" + string.Format(format,
                        dt,
                        props.CameraManufacturer,
                        props.CameraModel,
                        fi.Name);
                }