Linha de comando para retornar propriedades da imagem

Linha de comando para retornar propriedades da imagem

Estou tentando retornar um arquivo de texto contendo alguns detalhes sobre arquivos de imagem em uma pasta e suas subpastas. Especificamente:

  • Caminho de arquivo
  • Extensão de imagem
  • Dimensões da imagem
  • Data tirada
  • Modelo de câmera

Essas propriedades podem não estar disponíveis para todas as imagens - não tenho certeza se isso ainda será um problema.

Obter a lista de arquivos está bem;DIR C:\[...]\FOLDER\*.* /S| (Eu penso). É a próxima parte da qual não tenho certeza; Encontrei informações sobre outros sistemas operacionais e também ouvi WMICsugestões. Tentei usar isso com um teste em um único arquivo:

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

Mas ele retorna, Error: Invalid queryentão acho que o WMIC não funciona com imagens ou pelo menos alguns dos argumentos precisam ser alterados.

Percebo também, quando entro, wmic datafile get/?que as dimensões não estão listadas como uma das propriedades disponíveis. Isso é o máximo de solução de problemas que eu sei fazer.

Então, existe uma maneira de retornar propriedades de umImagemarquivo (ou lista de arquivos) no Windows usando a linha de comando. Caso contrário, estou aberto a qualquer coisa que não exija a instalação de software adicional. Alguma sugestão?

Responder1

Como posso obter as propriedades de um arquivo de imagem no Windows usando a linha de comando?

Você pode fazer isso usando o PowerShell.

Os metadados comumente preenchidos para arquivos de imagem contêm a câmera, o F-stop, a resolução e outras informações úteis sobre a foto. Isso pode ser extremamente útil para quem tira fotos. Os metadados da imagem são facilmente encontrados na guia Arquivo da foto, clicando em Propriedades e em Detalhes.

...

Usar o Windows PowerShell para examinar esse tipo de metadados significa usar o objeto Shell.Application COM, conectar-se a um arquivo e, em seguida, percorrer o conjunto de propriedades de metadados. Esta técnica é um pouco complicada. Felizmente, posso usar a mesma função que escrevi ontem para realizar esta tarefa.

Observe o completoObtenha metadados de arquivoA função está disponível no repositório do Script Center.

...

Certifique-se de armazenar os resultados

Como é possível que o script precise iterar milhares de fotos e, para cada foto, ele precise pesquisar várias centenas de atributos de metadados, o script levará algum tempo para ser executado. A melhor coisa a fazer é armazenar os resultados em uma variável. Isso permitirá a classificação e o processamento pós-coleta dos dados após a execução.

O Get-FileMetaDataReturnObject.ps1script contém uma única função. A função é a FileMetadatafunção Get-. Carrego a função no ISE do Windows PowerShell e a executo para copiar a função na memória. Depois de fazer isso, chamo a função e passo uma série de caminhos de pasta. Eu obtenho a matriz de caminhos de pasta usando o Get-ChildItemcmdlet. Aqui está o comando que executa uma pesquisa recursiva de uma pasta chamada pics e extrai os caminhos dos diretórios nessa pasta. Este é um comando de linha única que foi encapsulado.

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

...

Escreva em um arquivo

Agora que sei que o comando produz a saída desejada, canalizo os resultados para o Export-CSVcmdlet conforme mostrado aqui (este é um comando de linha única):

$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

FonteUse o PowerShell para encontrar metadados de arquivos fotográficos

Leia o link da fonte acima para ver quais outros metadados estão disponíveis.

Responder2

Sem instalar programas externos:tooltipinfo.batouimginfo.bat- basta passar o nome do arquivo (ou caminho se não estiver no mesmo diretório) para obter as informações.

Responder3

Existem muitas ferramentas para a linha cmd que podem obter/extrair metadados de imagem.

  1. IrfanView
  2. Exiftool
  3. nconverter

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

Exemplo de saída (apenas 1 imagem):

>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

Com mais ou menos esforço, a saída pode ser filtrada para as propriedades relevantes e formatada da maneira desejada com arquivos em lote.

informação relacionada