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


El contingut d'l'article s'adhereix als nostres principis de ètica editorial. Per notificar un error punxa aquí.

10 comentaris, deixa el teu

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