Cómo obtener la calidad de una imagen JPG o su nivel de compresión
Es habitual descargar imágenes que nos encontramos en internet para incluirlas en nuestros artículos o documentos. Muchas de estas imágenes están en formato JPG, el cual nos permite establecer un nivel de calidad entre 0 y 100 o nivel de compresión. El objetivo de este tutorial es cómo averiguar la calidad de una imagen JPG y así determinar su nivel de compresión.
Cuando os hablamos del mejor programa para optimizar imágenes, dedicamos un apartado a hablar sobre las imágenes en formato JPG, el cual recomiendo leer. Lo que debemos tener claro, es que el formato JPG es un formato con pérdidas y cada vez que guardamos una imagen en este formato estamos perdiendo calidad.
Cómo obtener la calidad de una imagen JPG o su nivel de compresión.
Como ya dijimos al principio, cuando guardamos una imagen en formato JPG podemos establecer la calidad con un número entre 0 y 100. En algunos programas se hace referencia a este parámetro como nivel de compresión, pero lo habitual es designarlo como calidad.
Cuando descargamos una imagen en formato JPG, no hay una forma directa para averiguar su calidad o su nivel de compresión. El formato no guarda esta información, aunque es cierto que algunos programan añaden esta información en los metadatos de la imagen, no es lo habitual.
A pesar de todo esto, existe un método para averiguar el parámetro de calidad de un JPG, para lo que emplearemos el software gratuito y multiplataforma ImageMagick. Dentro del paquete de ImageMagick encontraremos el programa identify
, que nos permite obtener información detallada de una imagen.
Para averiguar la calidad de un JPG ejecutamos el siguiente comando desde la línea de comandos:
identify -format '%Q' laimagen.jpg
Vemos que nos mostrará el número de calidad en pantalla, representado por su valor.
Consideraciones a la hora de interpretar la calidad de una imagen JPG.
Debemos tener claro que la calidad global de un archivo JPG no depende únicamente del parámetro de calidad establecido, sino que intervienen otros parámetros como el chroma subsampling, quantization tables, etc. Con esto, lo que quiero haceros ver, es que la calidad de una misma imagen JPG puede variar si la guardamos con diferentes programas, aunque empleemos el mismo parámetro de calidad.
Para demostrarlo podéis ver la siguiente imagen, que en ambos casos ha sido guardada con un parámetro de calidad 60, pero la primera imagen ha sido guardada con GIMP y la segunda con Photoshop.
Si nos fijamos, podemos observar que la imagen guardada con Photoshop ofrece mayor calidad global que la guardada con GIMP. También tenemos que considerar que la imagen guardada con Photoshop tiene un tamaño de 15,5KB mientras que la guardada con GIMP 9,91KB. Pero esta diferencia de tamaño tiene una explicación y es que la calidad elegida en Photoshop de 60, en realidad se corresponde con un parámetro de calidad 86.
A continuación os dejo los datos completos de las dos imágenes comparadas:
C:\ImageMagick-7.0.5-0-portable>identify -verbose test_gimp.jpg Image: test_gimp.jpg Format: JPEG (Joint Photographic Experts Group JFIF format) Mime type: image/jpeg Class: DirectClass Geometry: 480x220+0+0 Resolution: 72x72 Print size: 6.66667x3.05556 Units: PixelsPerInch Type: TrueColor Endianess: Undefined Colorspace: sRGB Depth: 8-bit Channel depth: Red: 8-bit Green: 8-bit Blue: 8-bit Channel statistics: Pixels: 105600 Red: min: 0 (0) max: 255 (1) mean: 192.338 (0.754266) standard deviation: 40.7007 (0.159611) kurtosis: -0.59641 skewness: 0.193754 entropy: 0.508844 Green: min: 45 (0.176471) max: 255 (1) mean: 157.433 (0.617385) standard deviation: 48.0412 (0.188397) kurtosis: -0.460929 skewness: 0.541649 entropy: 0.547715 Blue: min: 18 (0.0705882) max: 255 (1) mean: 177.084 (0.694446) standard deviation: 46.2831 (0.181502) kurtosis: 0.581174 skewness: -1.11279 entropy: 0.557997 Image statistics: Overall: min: 0 (0) max: 255 (1) mean: 175.618 (0.688699) standard deviation: 47.325 (0.185588) kurtosis: -0.342889 skewness: -0.226262 entropy: 0.538186 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) Matte color: grey74 Background color: white Border color: srgb(223,223,223) Transparent color: none Interlace: JPEG Intensity: Undefined Compose: Over Page geometry: 480x220+0+0 Dispose: Undefined Iterations: 0 Compression: JPEG Quality: 60 Orientation: Undefined Properties: date:create: 2017-03-02T16:27:01+01:00 date:modify: 2017-03-02T16:27:01+01:00 jpeg:colorspace: 2 jpeg:sampling-factor: 1x1,1x1,1x1 signature: a0ecd9fc0fe16532fd6a71e4055d410a86ff90e555dcc8dbb213c9ab7364a633 Artifacts: verbose: true Tainted: False Filesize: 9.91KB Number pixels: 106K Pixels per second: 17.6MB User time: 0.016u Elapsed time: 0:01.006 Version: ImageMagick 7.0.5-0 Q16 x64 2017-02-20 http://www.imagemagick.org
C:\ImageMagick-7.0.5-0-portable>identify -verbose test_photoshop.jpg Image: test_photoshop.jpg Format: JPEG (Joint Photographic Experts Group JFIF format) Mime type: image/jpeg Class: DirectClass Geometry: 480x220+0+0 Units: Undefined Type: TrueColor Endianess: Undefined Colorspace: sRGB Depth: 8-bit Channel depth: Red: 8-bit Green: 8-bit Blue: 8-bit Channel statistics: Pixels: 105600 Red: min: 0 (0) max: 255 (1) mean: 192.711 (0.755728) standard deviation: 40.5036 (0.158838) kurtosis: -0.461151 skewness: 0.153411 entropy: 0.522216 Green: min: 41 (0.160784) max: 255 (1) mean: 157.996 (0.619592) standard deviation: 48.1356 (0.188767) kurtosis: -0.460604 skewness: 0.523291 entropy: 0.545854 Blue: min: 29 (0.113725) max: 255 (1) mean: 177.555 (0.696293) standard deviation: 46.9984 (0.184308) kurtosis: 0.520238 skewness: -1.11799 entropy: 0.556904 Image statistics: Overall: min: 0 (0) max: 255 (1) mean: 176.087 (0.690538) standard deviation: 47.512 (0.186322) kurtosis: -0.324822 skewness: -0.258086 entropy: 0.541658 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) Matte color: grey74 Background color: white Border color: srgb(223,223,223) Transparent color: none Interlace: None Intensity: Undefined Compose: Over Page geometry: 480x220+0+0 Dispose: Undefined Iterations: 0 Compression: JPEG Quality: 86 Orientation: Undefined Properties: date:create: 2017-03-02T16:28:10+01:00 date:modify: 2017-03-02T16:28:11+01:00 jpeg:colorspace: 2 jpeg:sampling-factor: 1x1,1x1,1x1 signature: 7e7c7e918d7d2f7e8fd340f7c775f1ff72ac43b6c7870446a1c41311209b80b0 Profiles: Profile-app12: 15 bytes Profile-exif: 22 bytes Profile-xmp: 766 bytes Artifacts: verbose: true Tainted: False Filesize: 15.5KB Number pixels: 106K Pixels per second: 26.4MB User time: 0.000u Elapsed time: 0:01.003 Version: ImageMagick 7.0.5-0 Q16 x64 2017-02-20 http://www.imagemagick.org
Para terminar, también quiero aclarar que si una imagen JPG que ha sido guardada con el parámetro de calidad con un valor de 80, si volvemos a guardarla con un parámetro de calidad 90, no mejorará la calidad. Esto se debe a que el formato JPG es un formato con pérdidas.
Por el motivo anterior es tan importante conocer la calidad de una imagen JPG que descargamos de internet, para así no guardarla con mayor calidad de la necesaria y no desperdiciar espacio.