Cómo obtener la calidad de una imagen JPG o su nivel de compresión

En Tutoriales y Guías por

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.

Cómo obtener la calidad de una imagen JPG o 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

ImageMagick indetify calidad 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.

comparacion jpg Gimp 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.