Com manipular imatges des del terminal

ImageMagick és una aplicació que ens permet manipular imatges a través de la línia d'ordres i que serveix per a pràcticament tots els formats. Amb ella, també és possible automatitzar les accions sobre les imatges contingudes en una carpeta (conversió, redimensionat, etc ...)
Anem a veure una llista d'ordres útils de ImageMagick:

Obtenir informació d'una imatge.

identify -ping image.png

Obtenir encara més informació.

identify -verbose image.png

Conèixer la llista de colors utilitzats en una imatge.

identify -list color image.png

Convertir una imatge PNG en JPG

convert image.png image.jpg

Convertir una imatge PNG en JPG indicant la qualitat de conversió.

convert -quality 96 image.png image.jpg

Convertir totes les imatges PNG en JPG contingudes en una carpeta

mogrify -format png *.jpg

Convertir totes les imatges (* .jpg, * .png) en PDF

convert images*.* archivo.pdf

Canviar la mida d'una imatge

convert -resize 48×48 image.png image-mini.png

Canviar la mida de totes les imatges d'una carpeta

mogrify -resize 48×48 *.png

Canviar la mida d'una imatge indicant l'ample

convert -resize 620x image.png image-620.png

Canviar la mida d'una imatge indicant l'alt

convert -resize x100 image.png image-100.png

Crear un Favicon

convert -colors 256 -resize 16×16 image.jpg favicon.ico

Convertir una imatge en color en blanc i negre

convert -type image.jpg image-noir-blanc.jpg

Afegir una vora transparent d'1 píxel al voltant d'una imatge

convert -bordercolor Transparent -border 1×1 image.png image-borde.png

Afegir una vora negra de 10 píxels al voltant d'una imatge

convert -bordercolor #000000 -border 10×10 image.png image-borde.png

Crear un negatiu d'una imatge

convert -negate image.png image-negate.png

Rotar una imatge en vertical

convert -flip image.png image-inversee.png

Rotar una imatge d'esquerra a dreta

convert -flop image.png image-inversee.png

Utilitza la interfície gràfica d'ImageMagick

display image.png


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Glorfindel va dir

    estàs fent servir mogrify ?? fixa't en l'exemple de l'post.
    salutacions! Pau.

  2.   RubenGnu va dir

    Vas copiar i pegar?

    Posa una lletra 'x' en lloc de el signe per '×' que posa l'editor de text de la pàgina.

    Salutacions

    Rubén

  3.   Ainhoarepresa va dir

    Recupera el teu aspecte d'abans...
    he estat provant i està molt bé, però la comanda per crear un favicon no em funciona, aquest és l'error que em dóna:
    convert: invalid argument for option `-resize ': 16 × 16 @ error / convert.c / ConvertImageCommand / 2343.
    salutacions

  4.   Katerine va dir

    que és una terminal

  5.   jathan va dir

    Molt bona selecció de comandaments i claredat en la seva sintaxi. Anteriorment tenia molts problemes tractant d'usar convert per redimensionar un lot d'imatges i ara que usi mogrify per al mateix propòsit, tot va sortir bé. Moltes gràcies Pau.

  6.   Enrique va dir

    Un petit aportació a aquest brillant post!

    Per convertir a B & W:

    convert -monochrome image.png image-bw.png

    Salutacions

    1.    usemoslinux va dir

      Gràcies x l'aportació!
      Abraçada! Pau

  7.   Moises Garnica Radilla va dir

    Hola, aquesta informació l'he vista en moltes webs!
    Pregunta: Com puc realitzar l'escala a un altre directori?
    Exemple: convert -scale 50% -quality 80% * .jpg> escalat /
    L'exemple no funciona, com hauria de ser d'una carpeta xa una subcarpera x / escalat ??
    Per endavant, moltes gràcies!

    1.    Biseu va dir

      Jo vaig fer un script per a això i les modificades es em guarden en una altra carpeta.
      L'script ho situo dins de la carpeta on tinc totes les imatges que vull modificar, i el va executar des de la consola (el fitxer ha de tenir permís d'execució). El codi que vaig a posar a continuació, el pegues en un fitxer i li dones el nom que vulguis (jo li vaig posar a la fin .sh per saber que és un script amb només llegir el nom de l'arxiu).

      Copio i pego el codi per si et serveix d'alguna cosa:

      #! / Bin / bash
      ### Canviar la mida d'una imatge indicant l'amplada i la qualitat
      # Convert -quality 86 -resize 620x image.png image-620.png
      ### Canviar la mida d'una imatge indicant l'alt i la qualitat
      # Convert -quality 86 -resize x 100 image.png image-100.png

      + Info: https://blog.desdelinux.net/como-manipular-imagenes-desde-el-terminal/

      #
      # ================================================= ==============
      DIRECTORI =pwd
      cd $ DIRECTORI
      resized_directory = »resized_img»
      $ (Mkdir «$ resized_directory» 2> / dev / null)
      TEMP = »listado_img» #fichero temporal intern
      #
      #lista d'imatges de directori en un fitxer 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 d'imatges dins de directori
      echo -n 'En procés, esperi »
      while read imatge
      do
      fet -n «.»
      convert -quality 90 -resize 1000x $ imatge $ resized_directory / $ imatge
      done <$ resized_directory / $ TEMP
      fet «»
      #
      #eliminamos el fitxer temporal
      rm $ resized_directory / $ TEMP
      trobo «finalitzat amb èxit»

  8.   linuxpro va dir

    gràcies molt bo