Obtener detalles de la imagen ImageMagick


1

Cómo obtengo detalles de imágenes de todas las carpetas y subcarpetas con ImageMagick en este formato.

file-name file-location file-format size width height

PD: he leído esta página http://www.imagemagick.org/script/escape.php pero no puedo encontrar cómo obtener la ruta de ubicación del archivo y cómo incluir archivos en subcarpetas.

Respuestas:


0

Estoy bastante seguro de que ImageMagick no funcionará recursivamente así por sí solo. Tendrá que escribir un script / programa a su alrededor para trabajar a través de la estructura de su directorio y llamarlo una vez por archivo que desee verificar.


Okay . ¿Qué hay de obtener la ubicación del archivo? Sabes como hacer esto ? Busqué scripts de imágenes recursivas pero encontré solo para Linux. Estoy en Windows
Renuka

Busque algo como "archivos de lista de símbolo del sistema de Windows de forma recursiva" y encontrará mucha información.
Spline reticulado el

0

El siguiente comando devolverá la información que está buscando:

  identify -format "%f %d %m %b %w %h\n" ./* ./*/*
  1. La secuencia de escape para el directorio de archivos es %d.
  2. Para incluir todos los archivos en la carpeta actual, use ./*(el comodín de shell).
  3. Para incluir todos los archivos en todas las subcarpetas, use ./*/*(comodines de shell).

(No dijo en qué sistema operativo se encuentra. Lo anterior funcionará para Linux, Unix y Mac OS X. Para Windows, use .\*.*y .\*.*\*.*como comodines).

¡Atención! , si tiene archivos que no son de imagen o documentos PDF en sus carpetas, este comando podría ejecutarse durante bastante tiempo. Los archivos que no son de imagen producirán un mensaje de error como

identify: no decode delegate for this image format `EXE' @ error/constitute.c/ReadImage/501.

Esto puede evitarse redirigiendo todos los mensajes de error a /dev/null.

Por lo tanto, puede ser mejor usar esta variante:

 identify                                   \
   -format "%f %d %m %b %w %h\n"            \
    *.{jpg,jpeg,JPG,png,tif,tiff,ppm,gif}   \
    */*.{jpg,JPG,jpeg,png,tif,tiff,ppm,gif} \
   2>/dev/null

Aquí hay un ejemplo de Mac OS X:

delta.jpg # 12649876 JPEG 17441B 307205
CMYK_separation _ – _ maximum_black.jpg # 21270389 JPEG 1453360B 1600 4780
HFnCz.jpg # 21270389 JPEG 356748B 1600 1195
combine.jpg # 21270389 JPEG 528221B 1600 1195
res.jpg # 26408022 JPEG 57546B 603 300
red-500x2000.jpg # 26951336 JPEG 6288B 500 2000
redimensionada-rojo-2000x2000.jpg # 26951336 JPEG 7430B 1000 1000
big-edge-25.jpg # 27290574 JPEG 98916B 1024288
big.jpg # 27290574 JPEG 19216B 1024 576
double.jpg # 27290574 JPEG 35076B 480 270
small.jpg # 27290574 JPEG 20716B 720 404

(Sí, lo hice correr este comando en un directorio que tiene subdirectorios llamados #27290574, #26951336y similares ....)

Es posible que desee que el resultado se vea más parecido a una tabla. Para esto, canalice los resultados column -t. Intenta esto entonces:

 identify                                   \
   -format "%f %d %m %b %w %h\n"            \
    *.{jpg,jpeg,JPG,png,tif,tiff,ppm,gif}   \
    */*.{jpg,JPG,jpeg,png,tif,tiff,ppm,gif} \
   2>/dev/null  |  column -t

Resultado en mi caso:

delta.jpg # 12649876 JPEG 17441B 307205
CMYK_separation _ – _ maximum_black.jpg # 21270389 JPEG 1453360B 1600 4780
HFnCz.jpg # 21270389 JPEG 356748B 1600 1195
combine.jpg # 21270389 JPEG 528221B 1600 1195
res.jpg # 26408022 JPEG 57546B 603 300
red-500x2000.jpg # 26951336 JPEG 6288B 500 2000
redimensionada-rojo-2000x2000.jpg # 26951336 JPEG 7430B 1000 1000
big-edge-25.jpg # 27290574 JPEG 98916B 1024288
big.jpg # 27290574 JPEG 19216B 1024 576
double.jpg # 27290574 JPEG 35076B 480 270
small.jpg # 27290574 JPEG 20716B 720 404
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.