Esta dica é útil para webmasters, que precisam obter informações sobre imagens armazenadas em servidores sFTP, FTP, etc.
Todos sabemos que uma página web vai carregar mais rápido no navegador do cliente, se as imagens estiverem devidamente otimizadas ou, pelo menos usarem resoluções mais adequadas ao tráfego eficiente de dados.
A maioria dos servidores web, atualmente, usam distribuições Linux ou FreeBSD. Portanto, a dica que segue vale para todos.
O identify é um aplicativo utilitário CLI, que faz parte do pacote de ferramentas de manipulação de imagens ImageMagick, que costuma estar instalado na maioria das distribuições. Se não estiver, instale você mesmo ou peça para o administrador.
O utilitário tem (entre outras) a função de obter e exibir informações sobre o formato e as características de um ou mais arquivos de imagem.
Ele também pode ajudar a determinar se uma imagem se encontra incompleta ou corrompida.
O comportamento básico consiste em retornar informações sobre resolução e mapa de cores.
Se você fizer uso de algumas de suas opções, contudo, vai poder obter mais dados sobre as imagens no diretório.
Veja um exemplo do uso básico do identify:
identify images/wallpapers/system76/System76-System76_Logo_DarkBlue-remix.jpg
Como você pode observar, no resultado abaixo, o comando exibe o nome do arquivo seguido de informações relacionadas ao seu formato, resolução, mapa de cores, tamanho (em MB) e, por fim, o tempo que a imagem demora para carregar.
images/wallpapers/system76/System76-System76_Logo_DarkBlue-remix.jpg JPEG 2560x1440 2560x1440+0+0 8-bit sRGB 1.455MB 0.090u 0:00.100
Você pode usar coringas para obter informações sobre várias imagens, dentro de um diretório:
identify *.png
System76-Fractal_Mountains-by_Kate_Hazen_of_System76.png PNG 2560x1440 2560x1440+0+0 8-bit sRGB 216KB 0.000u 0:00.000 System76-Fractal_Salad-by_Kate_Hazen_of_System76.png[1] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 1.233MB 0.000u 0:00.000 System76-Geometric-adapted_by_Kate_Hazen_of_System76.png[2] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 543KB 0.000u 0:00.000 System76-Honeycomb-by_Kate_Hazen_of_System76.png[3] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 1.274MB 0.000u 0:00.000 System76-Robot-by_Kate_Hazen_of_System76.png[4] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 117KB 0.000u 0:00.000 System76-Unleash_Your_Robot_Blue-by_Kate_Hazen_of_System76.png[5] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 366KB 0.000u 0:00.000 System76-Unleash_Your_Robot-by_Kate_Hazen_of_System76.png[6] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 317KB 0.000u 0:00.000
Se acrescentar a opção ‘-verbose’, você irá obter uma quantidade (muito) maior de informações sobre a imagem:
identify -verbose System76-Unleash_Your_Robot-by_Kate_Hazen_of_System76.png
Image: System76-Unleash_Your_Robot-by_Kate_Hazen_of_System76.png Format: PNG (Portable Network Graphics) Mime type: image/png Class: DirectClass Geometry: 2560x1440+0+0 Units: Undefined Type: Palette Endianess: Undefined Colorspace: sRGB Depth: 8-bit Channel depth: red: 8-bit green: 8-bit blue: 8-bit Channel statistics: Pixels: 3686400 Red: min: 49 (0.192157) max: 251 (0.984314) mean: 67.3018 (0.263929) standard deviation: 52.2158 (0.204768) kurtosis: 8.12896 skewness: 3.16752 Green: min: 49 (0.192157) max: 211 (0.827451) mean: 64.1777 (0.251677) standard deviation: 45.8988 (0.179995) kurtosis: 5.73893 skewness: 2.76302 Blue: min: 8 (0.0313725) max: 240 (0.941176) mean: 53.8382 (0.21113) standard deviation: 27.4086 (0.107485) kurtosis: 32.4493 skewness: 4.88138 Image statistics: Overall: min: 8 (0.0313725) max: 251 (0.984314) mean: 61.7726 (0.242245) standard deviation: 43.1448 (0.169195) kurtosis: 11.5967 skewness: 3.57292 Colors: 158 Histogram: 1077: ( 49,178,217) #31B2D9 srgb(49,178,217) 1470: ( 49,187,228) #31BBE4 srgb(49,187,228) ... 4954: (239,201, 11) #EFC90B srgb(239,201,11) 257974: (251,211, 8) #FBD308 srgb(251,211,8) Rendering intent: Perceptual Gamma: 0.454545 Chromaticity: red primary: (0.64,0.33) green primary: (0.3,0.6) blue primary: (0.15,0.06) white point: (0.3127,0.329) Background color: white Border color: srgb(223,223,223) Matte color: grey74 Transparent color: black Interlace: None Intensity: Undefined Compose: Over Page geometry: 2560x1440+0+0 Dispose: Undefined Iterations: 0 Compression: Zip Orientation: Undefined Properties: date:create: 2016-09-21T11:51:50-03:00 date:modify: 2016-09-02T10:53:12-03:00 png:IHDR.bit-depth-orig: 8 png:IHDR.bit_depth: 8 png:IHDR.color-type-orig: 2 png:IHDR.color_type: 2 (Truecolor) png:IHDR.interlace_method: 0 (Not interlaced) png:IHDR.width,height: 2560, 1440 png:sRGB: intent=0 (Perceptual Intent) png:text: 1 tEXt/zTXt/iTXt chunks were found signature: b7734eceb937dcaa86ca13ecb086850622c67fc8a863fd7c10f095c98498054e Software: Adobe ImageReady Artifacts: filename: System76-Unleash_Your_Robot-by_Kate_Hazen_of_System76.png verbose: true Tainted: False Filesize: 317KB Number pixels: 3.686M Pixels per second: 61.44MB User time: 0.060u Elapsed time: 0:01.060 Version: ImageMagick 6.8.9-9 Q16 x86_64 2016-09-25 http://www.imagemagick.org
Neste caso, recomendo combinar o comando less ou o comando grep, para pausar ou filtrar a listagem.
Os usos do comando permitem, até mesmo, realizar tarefas mais complexas de manipulação de imagens, direto da linha de comando — mas isto, vamos explicar em outro artigo.
One reply on “Como obter informações dos arquivos de imagem com o identify, no Linux”
Muito bom