web-dev-qa-db-fra.com

Ligne de commande pour retourner les propriétés de l'image

J'essaie de renvoyer un fichier texte contenant des détails sur les fichiers image d'un dossier et de ses sous-dossiers. Plus précisément:

  • Chemin du fichier
  • Extension d'image
  • Dimensions de l'image
  • Date prise
  • Modèle d'appareil photo

Ces propriétés ne sont peut-être pas disponibles pour toutes les images. Je ne sais pas si cela posera encore problème.

Obtenir la liste des fichiers, c'est bien; DIR C:\[...]\FOLDER\*.* /S| (je pense) . Je ne suis pas sûr de la partie suivante. J'ai trouvé des informations sur d'autres systèmes d'exploitation, j'ai aussi entendu WMIC suggéré. J'ai essayé de l'utiliser avec un test sur un seul fichier:

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

Mais comme il retourne Error: Invalid query, je suppose que WMIC ne fonctionne pas avec les images, ou du moins que certains des arguments doivent être modifiés.

Je remarque également, lorsque je saisis wmic datafile get/?, que les dimensions ne sont pas répertoriées parmi les propriétés disponibles. C'est à peu près autant de dépannage que je sais comment faire.

Il existe donc un moyen de renvoyer les propriétés d’un fichier (ou d'une liste de fichiers) Image dans Windows en utilisant la ligne de commande. Sinon, je suis ouvert à tout ce qui ne nécessite pas l'installation de logiciel supplémentaire. Aucune suggestion?

7
Greedo

Comment puis-je obtenir les propriétés d'un fichier image dans Windows en utilisant la ligne de commande?

Vous pouvez le faire en utilisant PowerShell.

Les métadonnées couramment remplies pour les fichiers image contiennent l'appareil photo, le diaphragme, la résolution et d'autres informations utiles sur la photo. Cela peut être extrêmement utile pour quiconque prend des photos. Les métadonnées de l'image se trouvent facilement dans l'onglet Fichier de la photo en cliquant sur Propriétés, puis sur Détails.

...

Utiliser Windows PowerShell pour examiner ce type de métadonnées signifie utiliser l'objet COM Shell.Application, se connecter à un fichier, puis parcourir le panier de propriétés de métadonnées. Cette technique est un peu lourde. Heureusement, je peux utiliser la même fonction que celle que j'ai écrite hier pour accomplir cette tâche.

Notez que la fonction complète Obtenir les métadonnées de fichier est disponible dans le référentiel de centre de scripts.

...

Assurez-vous de stocker les résultats

Comme il est possible que le script doive parcourir plusieurs milliers de photos et que, pour chaque photo, il ait besoin de rechercher plusieurs centaines d'attributs de métadonnées, l'exécution du script prendra un certain temps. La meilleure chose à faire est de stocker les résultats dans une variable. Cela permettra le tri et le traitement post-collecte des données après le traitement.

Le script Get-FileMetaDataReturnObject.ps1 contient une seule fonction. La fonction est la fonction Get -FileMetadata. Je charge la fonction dans Windows PowerShell ISE et je l'exécute pour la copier en mémoire. Après cela, j'appelle la fonction et lui passe un tableau de chemins de dossiers. Je reçois le tableau de chemins de dossier en utilisant l'applet de commande Get-ChildItem. Voici la commande qui effectue une recherche récursive sur un dossier nommé pics et extrait les chemins de répertoire de ce dossier. Ceci est une commande simple ligne qui a été bouclée.

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

...

Ecrivez-le dans un fichier

Maintenant que je sais que la commande produit le résultat souhaité, je dirige les résultats vers l'applet de commande Export-CSV, comme indiqué ici (il s'agit d'une commande à une seule ligne):

$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

Source Utilisez PowerShell pour rechercher des métadonnées à partir de fichiers photo

Lisez le lien source ci-dessus pour voir quelles autres métadonnées sont disponibles.

4
DavidPostill

Il existe de nombreux outils pour la ligne de commande qui permettent d’obtenir/d’extraire des métadonnées d’image.

  1. IrfanView
  2. Exiftool
  3. nconvert

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

Exemple de sortie (1 seule image):

>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

Avec plus ou moins d'effort, la sortie peut être filtrée selon les propriétés pertinentes et formatée comme vous le souhaitez avec des fichiers de traitement par lots.

2
LotPings

Sans installer de programmes externes: tooltipinfo.bat ou imginfo.bat - transmettez simplement le nom du fichier (ou le chemin s'il ne se trouve pas dans le même répertoire) pour obtenir les informations.

1
npocmaka