
Estoy intentando devolver un archivo de texto que contiene algunos detalles sobre los archivos de imagen en una carpeta y sus subcarpetas. Específicamente:
- Ruta de archivo
- Extensión de imagen
- Dimensiones de la imagen
- Fecha que se tendrá
- Modelo de cámara
Es posible que no todas estas propiedades estén disponibles para todas las imágenes; no estoy seguro de si eso será un problema todavía.
Obtener la lista de archivos está bien;DIR C:\[...]\FOLDER\*.* /S|
(Creo). Es la siguiente parte de la que no estoy seguro; Encontré información sobre otros sistemas operativos y también escuché WMIC
sugerencias. Intenté usarlo con una prueba en un solo archivo:
wmic datafile where Name="C:\[...]\IMG_5443.JPG" get Name,FileType > "C:\[...]\info.txt"
Pero regresa, Error: Invalid query
así que supongo que WMIC no funciona con imágenes, o al menos algunos de los argumentos deben cambiar.
También noto que, cuando entro, wmic datafile get/?
las dimensiones no figuran como una de las propiedades disponibles. Eso es todo lo que sé hacer para solucionar problemas.
Entonces, ¿hay alguna manera de devolver las propiedades de unImagenarchivo (o lista de archivos) en Windows usando la línea de comando. Si no, estoy abierto a cualquier cosa que no requiera la instalación de software adicional. ¿Alguna sugerencia?
Respuesta1
¿Cómo puedo obtener las propiedades de un archivo de imagen en Windows usando la línea de comando?
Puedes hacer esto usando PowerShell.
Los metadatos comúnmente completados para archivos de imágenes contienen la cámara, el número F, la resolución y otra información útil sobre la foto. Esto puede resultar extremadamente útil para cualquiera que tome fotografías. Los metadatos de la imagen se encuentran fácilmente en la pestaña Archivo de la foto haciendo clic en Propiedades y luego en Detalles.
...
Usar Windows PowerShell para examinar este tipo de metadatos significa usar el objeto COM Shell.Application, conectarse a un archivo y luego recorrer el paquete de propiedades de metadatos. Esta técnica es un poco engorrosa. Afortunadamente, puedo usar la misma función que escribí ayer para realizar esta tarea.
Tenga en cuenta el completoObtener metadatos de archivosLa función está disponible en el repositorio del Script Center.
...
Asegúrate de almacenar los resultados.
Debido a que es posible que el script necesite recorrer miles de fotos y para cada foto necesite buscar varios cientos de atributos de metadatos, el script tardará algún tiempo en ejecutarse. Lo mejor que puedes hacer es almacenar los resultados en una variable. Esto permitirá la clasificación y el procesamiento posterior a la recopilación de los datos después de la ejecución.
El
Get-FileMetaDataReturnObject.ps1
script contiene una única función. La función es laFileMetadata
función Get. Cargo la función en Windows PowerShell ISE y la ejecuto para copiar la función en la memoria. Una vez hecho esto, llamo a la función y le paso una serie de rutas de carpetas. Obtengo la variedad de rutas de carpetas usando elGet-ChildItem
cmdlet. Aquí está el comando que realiza una búsqueda recursiva de una carpeta llamada fotos y extrae las rutas del directorio en esa carpeta. Este es un comando de una sola línea que se ha ajustado.$picMetadata = Get-FileMetaData -folder (Get-childitem E:\pics -Recurse -Directory).FullName
...
Escríbalo en un archivo
Ahora que sé que el comando produce el resultado que deseo, canalizo los resultados al
Export-CSV
cmdlet como se muestra aquí (este es un comando de una sola línea):$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
FuenteUtilice PowerShell para buscar metadatos de archivos de fotografías
Lea el enlace fuente anterior para ver qué otros metadatos están disponibles.
Respuesta2
Sin instalar programas externos:tooltipinfo.bat
oimginfo.bat
- simplemente pase el nombre del archivo (o la ruta si no está en el mismo directorio) para obtener la información.
Respuesta3
Hay muchas herramientas para la línea cmd que pueden obtener/extraer metadatos de imágenes.
> "C\Program Files\IrfanView\i_view64.exe" *.jpg /info=Jpeg_Info.txt /fullinfo
Salida de muestra (solo 1 imagen):
>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
Con más o menos esfuerzo, la salida se puede filtrar según las propiedades relevantes y formatearla como desee con archivos por lotes.