ImageMagick é unha aplicación que nos permite manipular imaxes a través da liña de comandos e que funciona para practicamente todos os formatos. Con el, tamén é posible automatizar as accións sobre as imaxes contidas nun cartafol (conversión, redimensionamento, etc ...)
Vexamos unha lista de comandos útiles de ImageMagick:
Obtén información dunha imaxe.
identify -ping image.png
Obteña aínda máis información.
identify -verbose image.png
Coñecer a lista de cores empregadas nunha imaxe.
identify -list color image.png
Converter unha imaxe PNG a JPG
convert image.png image.jpg
Converte unha imaxe PNG a JPG que indique a calidade da conversión.
convert -quality 96 image.png image.jpg
Converte todas as imaxes PNG a JPG contidas nun cartafol
mogrify -format png *.jpg
Converter todas as imaxes (* .jpg, * .png) a PDF
convert images*.* archivo.pdf
Redimensionar unha imaxe
convert -resize 48×48 image.png image-mini.png
Cambia o tamaño de todas as imaxes dun cartafol
mogrify -resize 48×48 *.png
Cambia o tamaño dunha imaxe especificando o ancho
convert -resize 620x image.png image-620.png
Cambia o tamaño dunha imaxe especificando a altura
convert -resize x100 image.png image-100.png
Crea un Favicon
convert -colors 256 -resize 16×16 image.jpg favicon.ico
Converter unha imaxe en cor a branco e negro
convert -type image.jpg image-noir-blanc.jpg
Engade un bordo transparente de 1 píxel arredor dunha imaxe
convert -bordercolor Transparent -border 1×1 image.png image-borde.png
Engade un bordo negro de 10 píxeles arredor dunha imaxe
convert -bordercolor #000000 -border 10×10 image.png image-borde.png
Crea un negativo dunha imaxe
convert -negate image.png image-negate.png
Xira unha imaxe verticalmente
convert -flip image.png image-inversee.png
Xira unha imaxe de esquerda a dereita
convert -flop image.png image-inversee.png
Use a GUI de ImageMagick
display image.png
10 comentarios, deixa os teus
estás usando mogrify ?? fíxate no exemplo da publicación.
Ánimo! Paul.
Copiou e pegou?
Pon unha letra "x" no lugar do signo de "×" que o editor de texto pon na páxina.
lembranzas
Rubén
Ola
Estiven probándoo e está ben, pero o comando para crear un favicon non me funciona, este é o erro que me produce:
convert: argumento non válido para a opción `-resize ': 16 × 16 @ error / convert.c / ConvertImageCommand / 2343.
lembranzas
que é un terminal
Moi boa selección de comandos e claridade na súa sintaxe. Anteriormente tiven moitos problemas ao intentar usar converter para cambiar o tamaño dun lote de imaxes e agora que uso mogrify para o mesmo propósito todo funcionaba ben. Moitas grazas Pablo.
Unha pequena contribución a esta brillante publicación.
Para converter a B&W:
converter -monochrome image.png image-bw.png
lembranzas
Grazas pola contribución.
Abrazo! Paul
Ola, vin esta información en moitos sitios web.
Pregunta: Como podo escalar a outro directorio?
Exemplo: converter -scale 50% -quality 80% * .jpg> escalar /
O exemplo non funciona, como debería ser desde un cartafol x ata unha subcarpeta x / a escala?
Antes moitas grazas!
Fixen un script para el e os modificados gárdanse noutro cartafol.
Coloco o script dentro do cartafol onde teño todas as imaxes que quero modificar e execútoo desde a consola (o ficheiro debe ter permiso de execución). O código que vou poñer a continuación, pégao nun ficheiro e dálle o nome que desexe (poño .sh ao final para saber que é un script só lendo o nome do ficheiro).
Copio e pego o código por se che axuda:
#! / bin / bash
### Cambia o tamaño dunha imaxe indicando o ancho e a calidade
# convert -quality 86 -resize 620x image.png image-620.png
### Cambia o tamaño dunha imaxe indicando a altura e a calidade
# 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 = »img_list» # ficheiro temporal interno
#
# lista de imaxes de directorio nun ficheiro 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
#
#cambiando imaxes no directorio
echo -n "Procesando, agarde"
mentres se le a imaxe
do
eco -n "."
converter -quality 90 -resize 1000x $ image $ resized_directory / $ image
feito <$ resized_directory / $ TEMP
botou ""
#
# elimina o ficheiro temporal
rm $ resized_directory / $ TEMP
eco "completado correctamente"
grazas moi ben