6

Я пытаюсь вернуть текстовый файл, содержащий некоторые сведения о файлах изображений в папке и ее подпапках. В частности:

  • Путь файла
  • Расширение изображения
  • Размеры изображения
  • Выбранная дата
  • Модель камеры

Эти свойства могут быть не все доступны для каждого изображения - я не уверен, что это пока будет проблемой.

Получение списка файлов в порядке; DIR C:\[...]\FOLDER\*.* /S| (Я думаю). Это следующая часть, в которой я не уверен; Я нашел информацию о других ОС, я также слышал, что WMIC предложил. Я попытался использовать это с тестом для одного файла:

wmic datafile where Name="C:\[...]\IMG_5443.JPG" get Name,FileType > "C:\[...]\info.txt"

Но он возвращает Error: Invalid query неверный запрос, поэтому я предполагаю, что WMIC не работает с изображениями, или по крайней мере некоторые аргументы необходимо изменить.

Я также замечаю, когда я ввожу wmic datafile get/? эти размеры не указаны в качестве одного из доступных свойств. Это примерно столько же устранения неполадок, сколько я знаю, как это сделать.

Так есть ли способ вернуть свойства файла изображения (или список файлов) в окнах с помощью командной строки. Если нет, я открыт для всего, что не требует установки дополнительного программного обеспечения. Какие-либо предложения?

3 ответа3

2

Для строки cmd существует множество инструментов, которые могут получать / извлекать метаданные изображения.

  1. IrfanView
  2. ExifTool
  3. nconvert

> "C\Program Files\IrfanView\i_view64.exe" *.jpg /info=Jpeg_Info.txt /fullinfo

Пример вывода (всего 1 картинка):

>type Jpeg_Info.txt
[Scan-100210-0002.jpg]
File name = Scan-100210-0002.jpg
Directory =
Compression = JPEG, quality: 90, subsampling ON (2x2)
Resolution = 300 x 300 DPI
Image dimensions = 2206 x 3264  Pixels (7.20 MPixels) (1.48)
Print size = 18.7 x 27.6 cm; 7.35 x 10.88 inches
Color depth = 16,7 Million   (24 BitsPerPixel)
Number of unique colors = 83260
Disk size = 918.01 KB (940.042 Bytes)
Current memory size = 20.61  MB (21.607.720 Bytes)
File date/time = 2010-02-10 / 21:59:07

- EXIF -
Make - Canon
Model - N650U
ExifOffset - 86
DateTimeDigitized - 2010:02:10 21:59:01

> exiftool  Scan-100210-0001.jpg
ExifTool Version Number         : 9.73
File Name                       : Scan-100210-0001.jpg
Directory                       : .
File Size                       : 884 kB
File Modification Date/Time     : 2010:02:10 21:21:28+01:00
File Access Date/Time           : 2010:02:10 21:21:22+01:00
File Creation Date/Time         : 2010:02:10 21:21:22+01:00
File Permissions                : rw-rw-rw-
File Type                       : JPEG
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : inches
X Resolution                    : 300
Y Resolution                    : 300
Exif Byte Order                 : Little-endian (Intel, II)
Make                            : Canon
Camera Model Name               : N650U
Page Name                       : Reflective
Create Date                     : 2010:02:10 20:21:22
Image Width                     : 2202
Image Height                    : 3264
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 2202x3264

> nconvert -fullinfo Scan-100210-0001.jpg 2>Nul
** NCONVERT v6.88 (c) 1991-2016 Pierre-E Gougelet (Apr 29 2016/17:06:08) **
        Version for Windows Xp/Vista/7 x64  (All rights reserved)
** This is freeware software (for non-commercial use)
Scan-100210-0001.jpg : Success
    Format               : JPEG TrueColor (v1.1)
    Name                 : jpeg
    Compression          : JPEG
    Width                : 2202
    Height               : 3264
    Components per pixel : 3
    Bits per component   : 8
    Depth                : 24
    # colors             : 16777216
    Color model          : RGB
    Bytes Per Plane      : 6606
    Orientation          : Top Left
    Xdpi                 : 300
    Ydpi                 : 300
    Page(s)              : 1
    Metadata             : ( EXIF )
EXIF:
  Camera:
    Camera Manufacturer  (0x010f): Canon
    Camera Model         (0x0110): N650U
  Image:
    Date digitized       (0x9004): 2010:02:10 20:21:22

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

2

Как я могу получить свойства файла изображения в Windows с помощью командной строки?

Вы можете сделать это с помощью PowerShell.

Обычно заполненные метаданные для файлов изображений содержат камеру, точку F, разрешение и другую полезную информацию о фотографии. Это может быть чрезвычайно полезно для тех, кто делает фотографии. Метаданные изображения легко найти на вкладке Файл для фотографии, нажав Свойства, затем Детали.

...

Использование Windows PowerShell для проверки метаданных этого типа означает использование командной консоли.COM-объект приложения, подключающийся к файлу и проходящий через пакет свойств метаданных. Эта техника немного громоздка. К счастью, я могу использовать ту же функцию, которую я написал вчера, чтобы выполнить эту задачу.

Обратите внимание, что полная функция получения метаданных файла доступна в репозитории Центра сценариев.

...

Не забудьте сохранить результаты

Поскольку возможно, что сценарию необходимо выполнить итерацию по тысячам фотографий, а для каждой фотографии необходимо выполнить поиск по нескольким сотням атрибутов метаданных, запуск сценария займет некоторое время. Лучше всего сохранить результаты в переменной. Это позволит сортировать и обрабатывать данные после сбора.

Сценарий Get-FileMetaDataReturnObject.ps1 содержит одну функцию. Функция является функцией Get- FileMetadata . Я загружаю функцию в Windows PowerShell ISE и запускаю ее, чтобы скопировать функцию в память. После этого я вызываю функцию и передаю ей массив путей к папкам. Я получаю массив путей к папкам с помощью командлета Get-ChildItem . Вот команда, которая выполняет рекурсивный поиск папки с именем pics и извлекает пути к каталогам в этой папке. Это однострочная команда с переносом.

$picMetadata = Get-FileMetaData -folder (Get-childitem E:\pics -Recurse -Directory).FullName

...

Запишите это в файл

Теперь, когда я знаю, что команда производит желаемый вывод, я передаю результаты в командлет Export-CSV , как показано здесь (это однострочная команда):

$picMetadata | 
Select 'camera model', dimensions, f-stop, 'flash mode', 'iso speed', 'exposure time', 'focal length', size, path |
Export-CSV -Path c:\fso\photoMetadata.csv -NoTypeInformation

Источник Используйте PowerShell для поиска метаданных из файлов фотографий

Прочитайте приведенную выше ссылку на источник, чтобы узнать, какие другие метаданные доступны.

0

Без установки внешних программ: tooltipinfo.bat или imginfo.bat - просто передайте имя файла (или путь, если он не в том же каталоге), чтобы получить информацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .