Como manipular imaxes desde o terminal

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


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

10 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   glorfindel dixo

    estás usando mogrify ?? fíxate no exemplo da publicación.
    Ánimo! Paul.

  2.   Ruben Gnu dixo

    Copiou e pegou?

    Pon unha letra "x" no lugar do signo de "×" que o editor de texto pon na páxina.

    lembranzas

    Rubén

  3.   ainhoaredam dixo

    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

  4.   katerina dixo

    que é un terminal

  5.   xatán dixo

    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.

  6.   Harry dixo

    Unha pequena contribución a esta brillante publicación.

    Para converter a B&W:

    converter -monochrome image.png image-bw.png

    lembranzas

    1.    usemos linux dixo

      Grazas pola contribución.
      Abrazo! Paul

  7.   Moisés Garnica Radilla dixo

    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!

    1.    Dezaseis dixo

      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"

  8.   linux pro dixo

    grazas moi ben