ImageMagick es una aplicación que nos permite manipular imágenes a través de la línea de comandos y que sirve para prácticamente todos los formatos. Con ella, también es posible automatizar las acciones sobre las imágenes contenidas en una carpeta (conversión, redimensionado, etc…)
Vamos a ver una lista de comandos útiles de ImageMagick:
Obtener información de una imagen.
identify -ping image.png
Obtener aún más información.
identify -verbose image.png
Conocer la lista de colores utilizados en una imagen.
identify -list color image.png
Convertir una imagen PNG en JPG
convert image.png image.jpg
Convertir una imagen PNG en JPG indicando la calidad de conversión.
convert -quality 96 image.png image.jpg
Convertir todas las imágenes PNG en JPG contenidas en una carpeta
mogrify -format png *.jpg
Convertir todas las imágenes (*.jpg, *.png) en PDF
convert images*.* archivo.pdf
Cambiar el tamaño de una imagen
convert -resize 48×48 image.png image-mini.png
Cambiar el tamaño de todas la imágenes de una carpeta
mogrify -resize 48×48 *.png
Cambiar el tamaño de una imagen indicando el ancho
convert -resize 620x image.png image-620.png
Cambiar el tamaño de una imagen indicando el alto
convert -resize x100 image.png image-100.png
Crear un Favicon
convert -colors 256 -resize 16×16 image.jpg favicon.ico
Convertir una imagen en color en blanco y negro
convert -type image.jpg image-noir-blanc.jpg
Añadir un borde transparente de 1 pixel alrededor de una imagen
convert -bordercolor Transparent -border 1×1 image.png image-borde.png
Añadir un borde negro de 10 pixels alrededor de una imagen
convert -bordercolor #000000 -border 10×10 image.png image-borde.png
Crear un negativo de una imagen
convert -negate image.png image-negate.png
Rotar una imagen en vertical
convert -flip image.png image-inversee.png
Rotar una imagen de izquierda a derecha
convert -flop image.png image-inversee.png
Usar el GUI de ImageMagick
display image.png
10 comentarios, deja el tuyo
estàs usando mogrify?? fijate en el ejemplo del post.
saludos! Pablo.
Copiaste y pegaste?
Pone una letra ‘x’ en lugar del signo por ‘×’ que pone el editor de texto de la página.
Saludos
Rubén
hola
he estado probandolo y está muy bien, pero el comando para crear un favicon no me funciona, este es el error que me da:
convert: invalid argument for option `-resize’: 16×16 @ error/convert.c/ConvertImageCommand/2343.
saludos
que es una terminal
Muy buena selección de comandos y claridad en su sintaxis. Anteriormente tenía muchos problemas tratando de usar convert para redimensionar un lote de imágenes y ahora que use mogrify para el mismo propósito, todo salió bien. Muchas gracias Pablo.
Un pequeño aporte a este brillante post!
Para convertir a B&W:
convert -monochrome image.png image-bw.png
Saludos
Gracias x el aporte!
Abrazo! Pablo
Hola, esta informacion la he vista en muchas webs!
Pregunta: Como puedo realizar la escala a otro directorio?
Ejemplo: convert -scale 50% -quality 80% *.jpg > escalado/
El ejemplo no funciona, como tendria que ser de una carpeta x a una subcarpera x/escalado ??
De antemano, muchas gracias!
Yo hice un script para ello y las modificadas se me guardan en otra carpeta.
El script lo ubico dentro de la carpeta donde tengo todas las imágenes que quiero modificar, y lo ejecuto desde la consola (el fichero debe tener permiso de ejecución). El código que voy a poner a continuación, lo pegas en un fichero y le das el nombre que quieras (yo le puse al final .sh para saber que es un script con sólo leer el nombre del fichero).
Copio y pego el código por si te sirve de algo:
#!/bin/bash
###Cambiar el tamaño de una imagen indicando el ancho y la calidad
# convert -quality 86 -resize 620x image.png image-620.png
###Cambiar el tamaño de una imagen indicando el alto y la calidad
# convert -quality 86 -resize x100 image.png image-100.png
+ info: https://blog.desdelinux.net/como-manipular-imagenes-desde-el-terminal/
#
#===============================================================
DIRECTORIO=
pwd
cd $DIRECTORIO
resized_directory=»resized_img»
$(mkdir «$resized_directory» 2>/dev/null)
TEMP=»listado_img» #fichero temporal interno
#
#lista de imágenes del directorio en un fichero temporal
ls *.png 2>/dev/null >> $resized_directory/$TEMP; ls *.PNG 2>/dev/null >> $resized_directory/$TEMP;
ls *.jpg 2>/dev/null >> $resized_directory/$TEMP; ls *.JPG 2>/dev/null >> $resized_directory/$TEMP;
ls *.jpeg 2>/dev/null >> $resized_directory/$TEMP; ls *.JPEG 2>/dev/null >> $resized_directory/$TEMP;
ls *.gif 2>/dev/null >> $resized_directory/$TEMP; ls *.GIF 2>/dev/null >> $resized_directory/$TEMP
#
#recorrido de imágenes dentro del directorio
echo -n «Procesando, espere»
while read imagen
do
echo -n «.»
convert -quality 90 -resize 1000x $imagen $resized_directory/$imagen
done < $resized_directory/$TEMP
echo «»
#
#eliminamos el fichero temporal
rm $resized_directory/$TEMP
echo «finalizado con éxito»
gracias muy bueno