
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 WMIC
sugestõ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 query
entã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.ps1
script contém uma única função. A função é aFileMetadata
funçã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 oGet-ChildItem
cmdlet. 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-CSV
cmdlet 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.bat
ouimginfo.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.
> "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.