Mi Blog
👉 Cómo modificar imágenes desde la terminal en GNU/Linux

Cómo modificar imágenes desde la terminal en GNU/Linux

 
(2 votos)

Modificar y convertir imágenes desde consola en GNU/Linux es sumamente sencillo gracias a la suite de herramientas proporcionada por ImageMagick. Se puede utilizar sobre una única imagen o múltiples imágenes, pudiendo automatizar pesadas tareas con unas pequeñas líneas de scripting en Bash.

Seguid leyendo y os enseñaré a modificar imágenes desde la terminal de GNU/Linux...

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

¿QUÉ ES IMAGEMAGICK?

ImageMagick es una suite de edición de imágenes en modo consola. Es decir, es un conjunto de comandos para trabajar con imágenes, con una serie de comandos que cada uno realiza una serie de procesos para cubrir todo el abanico de necesidades que un usuario pueda tener para cualquier actividad gráfica, tanto con mapa de bits como con vectores.

ImageMagick tiene una serie de características que le convierten en una herramienta muy útil para cualquier diseñador gráfico, fotógrafo o simplemente aficionados a la imagen, pero también para el trabajo con vídeo, ya que, en esencia, un vídeo no es más que una sucesión de imágenes.

Web: https://imagemagick.org

 

 

ImageMagick es una suite de herramientas gráficas Open Source

 

 

1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL

  • Un PC con GNU/Linux Ubuntu/Debian preferiblemente
  • Conexión a Internet recomendado

 

 

2.- INSTALAR IMAGEMAGICK

Para instalar ImageMagick en distribuciones basadas en GNU/Linux Debian, como por ejemplo Ubuntu, Mint etc... es tan sencillo como ejecutar el siguiente comando:

[raul@debian ~ ]$ sudo apt-get install imagemagick

 

 

Si disponemos de otra distribución, es tan sencillo como buscar en Internet cómo instalar el paquete ImageMagick. No será muy complicado.

 

 

3.- IMAGEN DE EJEMPLO

La imagen con la que vamos a trabajar en este tutorial es la siguiente:

Editar imagen en terminalImagen original JPG (53KB)

 

 

4.- INFORMACIÓN DE LA IMAGEN

Obtener la información de las características principales de la imagen, es muy sencillo desde la línea de comandos. Por ejemplo, para obtener la información de la imagen llamada original.jpg, ejecutaremos el siguiente comando:

[raul@debian ~ ]$ identify -ping original.jpg
original.jpg JPEG 960x624 960x624+0+0 8-bit sRGB 53912B 0.000u 0:00.000

 

 

En la salida del comando se pueden ver, por orden, los siguientes campos:

  • Nombre del fichero: original.jpg
  • Formato de la imagen: JPG
  • Dimensiones en píxeles: 960x624
  • Geometría de la imagen: 960x624+0+0
  • Profundidad de color: 8-bit
  • Espacio de solor: sRGB
  • Tamaño del fichero en Bytes: 53912B
  • Tiempo de usuario: 0.000u
  • Tiempo transcurrido: 0:00.000

 

 

Para obtener una información mucho mas detallada de una imagen, ejecutaremos el siguiente comando:

[raul@debian ~ ]$ identify -verbose original.jpg
Image: editar-imagen-terminal-01.jpg
Format: JPEG (Joint Photographic Experts Group JFIF format)
Mime type: image/jpeg
Class: DirectClass
Geometry: 960x624+0+0
Units: Undefined
Colorspace: sRGB
Type: TrueColor
Base type: Undefined
Endianess: Undefined
Depth: 8-bit
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
Channel statistics:
Pixels: 599040
Red:
min: 0 (0)
max: 255 (1)
mean: 96.3451 (0.377824)
standard deviation: 64.8295 (0.254233)
kurtosis: -0.748194
skewness: 0.669778
entropy: 0.949128
Green:
min: 1 (0.00392157)
max: 255 (1)
mean: 122.413 (0.480051)
standard deviation: 60.3246 (0.236567)
kurtosis: -1.09233
skewness: 0.0534841
entropy: 0.96357
Blue:
min: 0 (0)
max: 255 (1)
mean: 122.547 (0.480577)
standard deviation: 49.3536 (0.193543)
kurtosis: -0.526116
skewness: 0.521983
entropy: 0.931265
Image statistics:
Overall:
min: 0 (0)
max: 255 (1)
mean: 113.768 (0.446151)
standard deviation: 58.1692 (0.228115)
kurtosis: -0.913406
skewness: 0.298851
entropy: 0.947987
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: JPEG
Intensity: Undefined
Compose: Over
Page geometry: 960x624+0+0
Dispose: Undefined
Iterations: 0
Compression: JPEG
Quality: 85
Orientation: Undefined
Properties:
date:create: 2022-02-08T09:45:13+01:00
date:modify: 2019-02-26T10:35:03+01:00
jpeg:colorspace: 2
jpeg:sampling-factor: 2x2,1x1,1x1
signature: 6e4ccca99318d278b58dececfb8b41feb78272a29ff1ece43502a336bd71582f
Artifacts:
filename: editar-imagen-terminal-01.jpg
verbose: true
Tainted: False
Filesize: 53912B
Number pixels: 599040
Pixels per second: 59.904MB
User time: 0.000u
Elapsed time: 0:01.010
Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org

 

 

Para obtener el listado de todos los colores que existen en la imagen, hay que ejecutar el comando:

[raul@debian ~ ]$ identify -list color original.jpg

Path: [built-in]

Name Color Compliance
-------------------------------------------------------------------------------
AliceBlue srgb(240,248,255) SVG X11 XPM
AntiqueWhite srgb(250,235,215) SVG X11 XPM
AntiqueWhite1 srgb(255,239,219) X11
AntiqueWhite2 srgb(238,223,204) X11
AntiqueWhite3 srgb(205,192,176) X11
AntiqueWhite4 srgb(139,131,120) X11
aqua srgb(0,255,255) SVG
aquamarine srgb(127,255,212) SVG X11 XPM
aquamarine1 srgb(127,255,212) X11
aquamarine2 srgb(118,238,198) X11
aquamarine3 srgb(102,205,170) X11
aquamarine4 srgb(69,139,116) X11
azure srgb(240,255,255) SVG X11 XPM
azure1 srgb(240,255,255) X11
azure2 srgb(224,238,238) X11
azure3 srgb(193,205,205) X11
azure4 srgb(131,139,139) X11
...
...
...
wheat srgb(245,222,179) SVG X11 XPM
wheat1 srgb(255,231,186) X11
wheat2 srgb(238,216,174) X11
wheat3 srgb(205,186,150) X11
wheat4 srgb(139,126,102) X11
white srgb(255,255,255) SVG X11 XPM
WhiteSmoke srgb(245,245,245) SVG X11 XPM
yellow srgb(255,255,0) SVG X11 XPM
yellow1 srgb(255,255,0) X11
yellow2 srgb(238,238,0) X11
yellow3 srgb(205,205,0) X11
yellow4 srgb(139,139,0) X11
YellowGreen srgb(154,205,50) SVG X11 XPM

 

 

 

 

5.- CONVERTIR Y MODIFICAR IMAGENES

Para convertir y/o modificar las imágenes desde consola, podemos utilizar principalmente dos comandos: convert y mogrify. Antes de comenzar, debemos conocer la diferencia principal entre ambos comandos:

  • Con convert se genera un nuevo fichero. Es necesario especificarle el fichero de salida.
  • Con mogrify no se genera un nuevo fichero. Se sobre escribe el fichero original.

 

 

5.1.- CAMBIAR EL FORMATO DE LA IMAGEN

Si queremos cambiar el formato de una imagen, es decir, convertir un JPG a PNG, un BMP a TIFF ó un GIF a JPG, es tan sencillo como usar el siguiente comando. Hay que tener en cuenta que no estamos configurando la calidad de la imagen de salida,  solamente estamos convirtiendo la imagen con una calidad por "default" de ImageMagick:

[raul@debian ~ ]$ convert original.jpg editar-imagen-terminal-02.png

 

 

Editar imagen en terminalImagen PNG (419KB) convertida desde JPG (53KB)

 

 

5.2.- CAMBIAR LA CALIDAD DE LA IMAGEN

Para cambiar la calidad de una imagen, es necesario pasar el parámetro -quality seguido del valor en % de la calidad de la imagen final. En el siguiente ejemplo se genera el mismo JPG pero con una calidad del 50%:

[raul@debian ~ ]$ convert original.jpg -quality 50 editar-imagen-terminal-03.jpg

 

 

Editar imagen en terminalImagen final JPG (24KB) convertida desde JPG original (53KB)

 

 

5.3.- CAMBIAR EL TAMAÑO DE LA IMAGEN (HORIZONTAL)

Para cambiar el tamaño de la imagen debemos añadir el parámetro -resize seguido de las nuevas dimensiones ANCHO x ALTO. Si lo que queremos es conservar la relación entre ancho y alto, podemos indicar solamente uno de ambos datos (conservando el x del medio). Así por ejemplo, si queremos redimensionar la imagen de ejemplo (960x624) a un ancho de 430pixeles conservando el aspecto, ejecutaremos:

[raul@debian ~ ]$ convert original.jpg -resize 430x editar-imagen-terminal-04.jpg

 

 

Editar imagen en terminalImagen JPG redimensionada a un ancho 430 píxeles

 

 

5.4.- CAMBIAR EL TAMAÑO DE LA IMAGEN (VERTICAL)

Si por el contrario, queremos redimensionar la imagen de ejemplo (960x624) a un alto de 400pixeles conservando el aspecto, ejecutaremos:

[raul@debian ~ ]$ convert original.jpg -resize x400 editar-imagen-terminal-05.jpg

 

 

Editar imagen en terminalImagen JPG redimensionada a un alto de 400 píxeles

 

 

5.5.- CAMBIAR LA IMAGEN A MODO ESCALA DE GRISES

Para convertir una imagen a color en una imagen en escala de grises, añadiendo -colorspace Gray ejecutaremos:

[raul@debian ~ ]$ convert original.jpg -colorspace Gray editar-imagen-terminal-06.jpg

 

 

Editar imagen en terminalImagen JPG cambiada a escala de grises

 

 

5.6.- CAMBIAR A LA IMAGEN A NEGATIVO

Para convertir una imagen a negativo, añadiendo el parámetro -negate, ejecutaremos:

[raul@debian ~ ]$ convert original.jpg -negate editar-imagen-terminal-07.jpg

 

 

Editar imagen en terminalImagen JPG cambiada a negativo

 

 

5.7.- AÑADIR BORDE A LA IMAGEN

También es posible añadir un borde a las imágenes. En este ejemplo, añadiremos un borde igual en todos los lados de 10 píxeles de ancho y de color amarillo. Para ello tenemos que ejecutar:

[raul@debian ~ ]$ convert original.jpg -bordercolor yellow -border 10x10 editar-imagen-terminal-08.jpg

 

 

Editar imagen en terminalImagen JPG con un borde amarillo de 10 píxeles

 

 

5.8.- ROTAR LA IMAGEN

Para rotar (girar) una imagen, X grados (en sentido horario), añadiremos el parámetro -rotate y el número de grados a rotar. En el siguiente ejemplo se rota la imagen 45º en sentido horario:

[raul@debian ~ ]$ convert original.jpg -rotate 45 editar-imagen-terminal-09.jpg

 

 

Editar imagen en terminalImagen JPG rotada 45 grados

 

 

5.9.- RECORTAR LA IMAGEN

También es posible recortar una imagen para seleccionar una parte en concreto de la imagen. En este ejemplo con los valores 500x500+375+75 recortaremos la imagen para quedarnos solamente con la flor:

[raul@debian ~ ]$ convert original.jpg -crop 500x500+375+75 editar-imagen-terminal-10.jpg

 

 

Editar imagen en terminalImagen JPG recortada

 

 

5.10.- GIRAR HORIZONTALMENTE LA IMAGEN

Para girar una imagen horizontalmente, usaremos el parámetro -flip:

[raul@debian ~ ]$ convert original.jpg -flip editar-imagen-terminal-11.jpg

 

 

Editar imagen en terminalImagen JPG rotada horizontalmente

 

 

5.11.- GIRAR VERTICALMENTE LA IMAGEN

Para girar una imagen horizontalmente, usaremos el parámetro -flop:

[raul@debian ~ ]$ convert original.jpg -flop editar-imagen-terminal-12.jpg

 

 

Editar imagen en terminalImagen JPG rotada verticalmente

 

 

6.- MODIFICAR MÚLTIPLES IMÁGENES

Es posible también modificar múltiples imágenes de una única vez. Por ejemplo, si queremos convertir todos los TIFF a JPG con una calidad de 75%, usaremos el siguiente comando:

[raul@debian ~ ]$ convert *.jpg -quality 75 *.tiff

 

 

Existen miles de opciones y parámetros a la hora de modificar imágenes desde consola con las tools de Imagemagick. Si queréis ver todas ellas, o buscáis una en concreto, podéis visitar la Web Oficial de https://imagemagick.org

 

 

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!
AVISO DE COOKIES

Esta página web utiliza cookies propias y de terceros para fines funcionales (permitir la navegación web), para optimizar la navegación y personalizarla según tus preferencias asícomo para mostrarte publicidad en base a tu perfil de navegación (p.e páginas visitadas).

Privacidad