Cómo manipular imágenes en la terminal de Linux

¿Alguna vez se cansó de abrir constantemente su editor de imágenes favorito para un simple recorte, cambio de tamaño o para cambiar el formato de archivo? ¿Quizás tenga la necesidad de realizar fácilmente estas tareas en lotes o dentro del software?

Aquí se explica cómo usar la herramienta de conversión de Linux, que le permite hacer todo esto con el terminal a través de la línea de comandos, y mucho más.

Instalar ImageMagick

La herramienta de conversión es parte del popular paquete imagemagick , que debe tener instalado. Verifique si ImageMagick está instalado o no con el comando:

 convert --version

Si se muestra el número de versión de ImageMagick, entonces ya está instalado y puede pasar a la siguiente sección. De lo contrario, instale ImageMagick con el comando:

 sudo apt-get -y install imagemagick

Obtener información de la imagen

Puede obtener la información básica sobre cualquier imagen con el comando:

 convert <FILENAME> -print "Type: %m
Size: %b
Dimensions: %wx%h
" /dev/null

Esto le dará el tipo de imagen mime, en KB, y sus dimensiones en píxeles, y se verá similar a:

 Type: jpeg
Size: 35.6KB
Dimensions: 640 x 480

Cambiar formato de archivo de imagen

Puede cambiar fácilmente el formato de archivo de cualquier imagen con:

 convert <SOURCE_FILE> -append <DEST_FILE>

Este comando tomará el archivo <SOURCE_FILE>, lo convertirá al formato adecuado y guardará una nueva imagen en <DEST_FILE> Debe usar las extensiones de archivo correctas (es decir, JPG, GIF, PNG, etc.) para DEST_FILE y detecta automáticamente a qué formato convertir la imagen.

Cambiar el tamaño de una imagen en Linux

Si desea cambiar el tamaño de una imagen, o tal vez generar rápidamente una miniatura, puede hacerlo con la opción -resize . Ejecute el siguiente comando:

 convert -resize 25% <SOURCE_FILE> <DEST_FILE>

Esto cambiará el tamaño de la imagen y creará un nuevo archivo de imagen en DEST_FILE que es el 25% de las dimensiones de la imagen de origen. Tenga en cuenta que el comando anterior no reduce el tamaño en un 25%, sino que genera una nueva imagen que es el 25% del tamaño. Si necesita ampliar una imagen, puede ajustar el porcentaje a más del 100%.

En lugar de cambiar el tamaño por porcentaje, también puede especificar las dimensiones específicas con el comando:

 convert -resize 1024x768 profile.jpg profile_large2.jpg

El comando anterior cambiaría el tamaño de la imagen de origen a 1024×768 píxeles y guardaría la nueva imagen en DEST_FILE.

Recortar una imagen

Si necesita quitar un poco la parte superior o los lados, puede recortar una imagen con el siguiente comando:

 convert <SOURCE_FILE> -crop 640x250+0+0 <DEST_FILE>

Por ejemplo, si la imagen de origen fuera de 640×480 píxeles, el comando anterior daría como resultado que DEST_FILE sea una imagen de 640×250 píxeles que contenga la mitad superior de la imagen, mientras que la mitad inferior se recortó. El + 0 + 0 en el comando anterior especifica el punto más a la izquierda de la imagen, o en otras palabras, dónde comenzar a recortar.

Usando el ejemplo anterior, puede guardar la mitad inferior de la imagen con el comando:

 convert <SOURCE_FILE> -crop 640x250+0+230 <DEST_FILE>

Esto comenzará el recorte en 0x230 dentro de la imagen de origen, recortando la mitad superior y dejando solo la mitad inferior.

Rotar imagen

Incluso puedes rotar imágenes usando el comando:

 convert <SOURCE_FILE> -rotate 90 <DEST_FILE>

El comando anterior rotará la imagen de origen 90 grados en el sentido de las agujas del reloj y guardará la imagen resultante en DEST_FILE.

Agregar título a la imagen

Otra característica excelente de la herramienta de conversión es la capacidad de agregar instantáneamente títulos a las imágenes, incluido el lugar de la imagen para colocar el título, además de la familia de fuentes, el tamaño y el color que se utilizarán. Use el siguiente comando para agregar un título a una imagen:

 convert profile.jpg -pointsize 14 -font helvetica -fill yellow -draw 'text 270,160 "Warm Regards from the Family" ' profile_cap.jpg

El comando anterior colocará un título de "Saludos cordiales de la familia" en la imagen de origen utilizando la fuente Helvetica 14pt en amarillo, con el punto superior izquierdo de la imagen a partir de 270×160 píxeles, y guardará los resultados en DEST_FILE.

Tenga en cuenta que debe tener cuidado con la opción -draw , que debe comenzar entre comillas simples, seguida de la ubicación del punto más a la izquierda y luego del texto del título rodeado de comillas dobles.

Hay una enorme lista de colores disponibles y, si lo desea, puede enumerar todos los colores admitidos por su computadora con el comando:

 cb:>showrgb

La selección de fuentes varía dependiendo de su computadora , pero todas las fuentes estándar que se utilizan generalmente estarán allí. Cada sistema operativo es un poco diferente, pero en Ubuntu, por ejemplo, las fuentes se encuentran dentro del directorio / usr / share / fonts y contienen una lista de todas las fuentes del sistema disponibles que puede usar en el comando anterior.

Mezclar y combinar comandos de edición de imágenes

Puede mezclar y combinar cualquiera de las opciones anteriores en un solo comando para una mayor eficiencia. Por ejemplo, si tiene una imagen grande que tiene la orientación incorrecta, un tamaño de 2571×1200 píxeles y desea generar una miniatura de 300×200, puede usar el comando:

 convert <SOURCE_FILE> -rotate 90 -crop 1200x800 -resize 25% <DEST_FILE>

Lo anterior primero rotaría la imagen 90 grados, haciendo que el nuevo tamaño sea de 1200×2571 píxeles. A continuación, recortaría el exceso de la parte inferior para que tenga solo 800 píxeles de altura, y finalmente cambiaría el tamaño de la imagen al 25% de su tamaño original, lo que daría como resultado una miniatura final de 300×200 píxeles de tamaño.

Procesar por lotes un directorio de imágenes

¿Tiene un directorio completo de imágenes que desea procesar con el mismo comando? No hay problema en Linux. Por ejemplo, es posible que desee generar miniaturas de todas las imágenes en su directorio de trabajo actual al cambiar su tamaño al 30% de su actual:

 mkdir thumbs
for i in `ls | grep .jpg$`; do convert $i -resize 30% thumbs/$i; done

El comando anterior revisará todos los archivos en su directorio actual que tengan una extensión .jpg, los redimensionará al 30% de su tamaño y colocará las miniaturas resultantes en el subdirectorio / thumbs / .

¡Manipulación de imágenes más fácil!

A través de este tutorial, es de esperar que haya eliminado la capacidad de manipular imágenes sin dolor y sin esfuerzo a través del terminal, y procesar fácilmente por lotes un directorio completo con un solo comando.

Ha aprendido qué es la herramienta de conversión de ImageMagick, además de cómo cambiar el formato de archivo, cambiar el tamaño, recortar, rotar y agregar leyendas a las imágenes con facilidad. También hay una gran cantidad de funciones adicionales disponibles: pruebe la opción convert -help para obtener una lista completa.