Как получить характеристики файла 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
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);
}
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой