Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
imagemagick [Le 16/06/2023, 14:05]
bcag2 [Convert] ajout -auto-level (+ ajout bash aux balises <code>
imagemagick [Le 06/10/2025, 09:13] (Version actuelle)
bcag2 [Installation] en appimage (pour avoir la version 7)
Ligne 9: Ligne 9:
 Il est possible d'​utiliser ces différents outils dans des programmes écrits en C, C++, Ruby, Python, Perl, etc... Il est possible d'​utiliser ces différents outils dans des programmes écrits en C, C++, Ruby, Python, Perl, etc...
  
-===== Installation =====+<note important>​Depuis 2016 imagemagick est passé à la version 7 qui modifie sensiblement la manière d'​utiliser la bibliothèque,​ toutefois une version 6, intitulée "​legacy"​ reste maintenue (2023) et mise à jour. La présente page se réfère à l'​utilisation d'IM6. La version d'IM présente dans les paquets est une version legacy.</​note>​
  
 +===== Installation =====
 +==== Dépôts officiels APT ====
 Il vous suffit, pour cela, d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​imagemagick]]**. Il vous suffit, pour cela, d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt>​imagemagick]]**.
 +
 +==== Appimage ====
 +
 +Pour disposer d’une version plus récente, vous pouvez installer son **[[:​Appimage]]** référez-vous avant tout au [[:​appimage#​installer_un_appimage|chapitre dédié]] au sujet.
 +
 +En résumé téléchargez le fichier [[https://​imagemagick.org/​archive/​binaries/​magick]],​ puis [[:​permissions#​modifier_les_permissions|rendez-le exécutable]] (clic droit sur le fichier -> //​Propriétés//​ -> //​Permissions//​ -> //Autoriser l’exécution//​). Finalement lancez-le en double-cliquant dessus.\\ ​
 +Vous pouvez utiliser un service tel que **[[:​appimage#​go_appimageappimaged|appimaged]]** pour créer automatiquement un [[:​raccourci-lanceur|lanceur]].
 +
 +Dans le texte au regard du lien de téléchargement,​ il est recommandé de mettre en place des règles (//​police//​) de sécurité.
 +<code bash>
 +# vérification de la police de sécurité (dans le répertoire où se trouve le fichier magick :
 +./magick -list policy
 +# doit retourner un texte comprenant :
 +Policy: Undefined
 +    rights: None
 +</​code>​
 +
 +Le fichier de police doit être déposé dans ///​home/​$USER/​.config/​ImageMagick//​.\\
 +Créer d'​abord le répertoire pour recevoir ce fichier :
 +<code bash>
 +mkdir /​home/​$USER/​.config/​ImageMagick
 +</​code>​
 +Différentes versions sont disponibles à [[https://​imagemagick.org/​script/​security-policy.php|la page de détails sur les polices de sécurité]].
 +Puis, faire un click-droit sur celle qui vous convient (par exemple //​secure//​),​ puis //​enregistrer la cible du lien sous// puis sélectionner le chemin vers le répertoire créé précédemment.\\
 +Il faut enfin le renommer
 +<code bash>
 +mv /​home/​$USER/​.config/​ImageMagick/​policy-secure.xml /​home/​$USER/​.config/​ImageMagick/​policy.xml
 +</​code>​
 +
 +
  
 ===== Les différents outils ===== ===== Les différents outils =====
Ligne 66: Ligne 98:
 </​note>​ </​note>​
  
-  * améliorer le contraste : selon la luminosité lors de la prise d'​image,​ celle-ci peut ne pas utiliser tous les niveaux disponibles,​ que ce soit dans les tons clairs comme dans les tons sombres, pour améliorer à minima cela, lancez : <code bash>​convert image-source-peu-contrasté.jpg -auto-level image-dest-mieux-contrasté.jpg</​code>​+  * améliorer le contraste ​(//​expansion d'​histogramme//​): selon la luminosité lors de la prise d'​image,​ celle-ci peut ne pas utiliser tous les niveaux disponibles,​ que ce soit dans les tons clairs comme dans les tons sombres, pour améliorer à minima cela, lancez : <code bash>​convert image-source-peu-contrasté.jpg -auto-level image-dest-mieux-contrasté.jpg</​code>​
   * ajouter un //​copyright//​ (« © Ubuntu » par ex.) ou autre //​watermark//​ sur les photos : des scripts ont déjà été faits, facilitant l'​utilisation des lignes de commandes, en particulier pour l'​ajout d'un //​copyright//​ image transparente : voir dans  [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=301750|ce post de forum]] avec [[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=1878153#​p1878153|ce script]] de [[http://​forum.ubuntu-fr.org/​profile.php?​id=50612|Fake]] ;   * ajouter un //​copyright//​ (« © Ubuntu » par ex.) ou autre //​watermark//​ sur les photos : des scripts ont déjà été faits, facilitant l'​utilisation des lignes de commandes, en particulier pour l'​ajout d'un //​copyright//​ image transparente : voir dans  [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=301750|ce post de forum]] avec [[http://​forum.ubuntu-fr.org/​viewtopic.php?​pid=1878153#​p1878153|ce script]] de [[http://​forum.ubuntu-fr.org/​profile.php?​id=50612|Fake]] ;
   * découper une image comme avec un emporte-pièce. Les paramètres largeur et hauteur servent à fixer la largeur et la hauteur de l'​image finale (dans la limite des dimensions de l'​image originale), les paramètres //x// et //y// servent à localiser le coin supérieur gauche de l'​image finale par rapport au coin supérieur gauche de l'​image initiale. Pour découper une image de 50 px de largeur et de 100 px de hauteur, située à 10 px du bord gauche et à 20 px du bord supérieur de « initial.png » : <code bash>​convert -crop 50x100+10+20 ​ initial.png ​ final.jpg</​code>​   * découper une image comme avec un emporte-pièce. Les paramètres largeur et hauteur servent à fixer la largeur et la hauteur de l'​image finale (dans la limite des dimensions de l'​image originale), les paramètres //x// et //y// servent à localiser le coin supérieur gauche de l'​image finale par rapport au coin supérieur gauche de l'​image initiale. Pour découper une image de 50 px de largeur et de 100 px de hauteur, située à 10 px du bord gauche et à 20 px du bord supérieur de « initial.png » : <code bash>​convert -crop 50x100+10+20 ​ initial.png ​ final.jpg</​code>​
   * découper une image de dimensions ​ 55 × 110 en 18 morceaux, 10 morceaux de 20 × 20, 2 morceaux de 20 × 10, 5 morceaux de 15 × 20 et 1 morceau de 15 × 10. En effet, si //x// et //y// sont omis, l'​image est intégralement découpée en morceaux de dimensions hauteur×largeur,​ la découpe se faisant de gauche à droite et de haut en bas, à partir du coin supérieur gauche (il est possible de remplacer hauteur×largeur et //x// et //y// par un % de la largeur. //x// et //y// peuvent être négatifs, dans ce cas le point de départ de la découpe se fera en dehors de l'​image d'​origine,​ seule la partie correspondant à des pixels de l'​image d'​origine étant restituée). Les parties les plus à droite et les plus en bas peuvent être de dimensions inférieures à la taille de la découpe pour s'​adapter à la dimension de l'​image initiale : <code bash>​convert -crop 20x20 initial.jpg final.jpg </​code>​   * découper une image de dimensions ​ 55 × 110 en 18 morceaux, 10 morceaux de 20 × 20, 2 morceaux de 20 × 10, 5 morceaux de 15 × 20 et 1 morceau de 15 × 10. En effet, si //x// et //y// sont omis, l'​image est intégralement découpée en morceaux de dimensions hauteur×largeur,​ la découpe se faisant de gauche à droite et de haut en bas, à partir du coin supérieur gauche (il est possible de remplacer hauteur×largeur et //x// et //y// par un % de la largeur. //x// et //y// peuvent être négatifs, dans ce cas le point de départ de la découpe se fera en dehors de l'​image d'​origine,​ seule la partie correspondant à des pixels de l'​image d'​origine étant restituée). Les parties les plus à droite et les plus en bas peuvent être de dimensions inférieures à la taille de la découpe pour s'​adapter à la dimension de l'​image initiale : <code bash>​convert -crop 20x20 initial.jpg final.jpg </​code>​
 +  * convertir une image couleur en niveau de gris : <code bash>​convert -colorspace Gray initial.jpg final.jpg</​code>​
   * transformer un dossier d'​images : <code bash>​convert *.BMP -set filename:f '​%t.png'​ +adjoin '​%[filename:​f]'</​code>​   * transformer un dossier d'​images : <code bash>​convert *.BMP -set filename:f '​%t.png'​ +adjoin '​%[filename:​f]'</​code>​
   * créer une image unie (par exemple pour y superposer des images de dimensions différentes) : <code bash>​convert -size 2450x4780 xc:blue image.png</​code>​   * créer une image unie (par exemple pour y superposer des images de dimensions différentes) : <code bash>​convert -size 2450x4780 xc:blue image.png</​code>​
 +  * créer une image transparente (par exemple pour y coller d'​autres éléments) : <code bash>​convert -size 840x600 ​ -colorspace RGB xc:none image-transp.png</​code>​
 +<note tip>​Fixer l'​espace de couleur par -colorspace peut se révéler utile pour ultérieurement coller cette image transparente dans des images au profil de couleur différent, à défaut l'​espace de couleur est en niveaux de gris qui peut être incompatible avec des images colorées.</​note>​
 ==== Mogrify ==== ==== Mogrify ====
  
Ligne 411: Ligne 446:
 Donc **[[apt>​librsvg2-bin]]** pour le support des images svg. Donc **[[apt>​librsvg2-bin]]** pour le support des images svg.
  
-==== J'​obtiens une erreur de cache ====+==== J'​obtiens une erreur de cache, width or height ​====
 Erreur du type: Erreur du type:
 <​code>​convert-im6.q16:​ DistributedPixelCache '​127.0.0.1'​ @ error/​distribute-cache.c/​ConnectPixelCacheServer/​244</​code>​ <​code>​convert-im6.q16:​ DistributedPixelCache '​127.0.0.1'​ @ error/​distribute-cache.c/​ConnectPixelCacheServer/​244</​code>​
Ligne 427: Ligne 462:
 sudo sed -i '​s/​name="​memory"​ value="​256MiB"/​name="​memory"​ value="​512MiB"/'​ /​etc/​ImageMagick-6/​policy.xml sudo sed -i '​s/​name="​memory"​ value="​256MiB"/​name="​memory"​ value="​512MiB"/'​ /​etc/​ImageMagick-6/​policy.xml
 sudo sed -i '​s/​name="​disk"​ value="​1GiB"/​name="​disk"​ value="​2GiB"/'​ /​etc/​ImageMagick-6/​policy.xml sudo sed -i '​s/​name="​disk"​ value="​1GiB"/​name="​disk"​ value="​2GiB"/'​ /​etc/​ImageMagick-6/​policy.xml
 +</​code>​
 +
 +Pour une erreur //width or height// (j'​avais une image de 7803x19208) ((https://​askubuntu.com/​a/​1484930/​385361)):​
 +<file - /​etc/​ImageMagick-6/​policy.xml>​
 +<policy domain="​resource"​ name="​width"​ value="​24KP"/>​ <!-- default 16KP -->
 +<policy domain="​resource"​ name="​height"​ value="​24KP"/>​ <!-- default 16KP -->
 +</​file>​
 +j'ai eu ensuite l'​erreur cache et j'ai dû monter "​disk"​ à 3GiB (cf. ci-dessus)
 +
 +==== Quelle est ma version d'​imagemagick ? ====
 +Pour connaître sa version d'​Imagemagick,​ saisir en console :
 +<​code>​
 +$ identify -version
 +</​code>​
 +ou (pour imagemagick 7) :
 +<​code>​
 +$ magick identify -version
 </​code>​ </​code>​
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * [[http://​www.imagemagick.org/​script/​command-line-tools.php|Site officiel]] **(en)**+  * [[https://​legacy.imagemagick.org/​|Site officiel imagemagick LEGACY]] **(en)** 
 +  * [[https://​www.imagemagick.org/​script/​command-line-tools.php|Site officiel]] **(en)** 
 +  * [[https://​legacy.imagemagick.org/​Usage|De nombreux exemples LEGACY]] **(en)**
   * [[http://​www.imagemagick.org/​Usage|De nombreux exemples]] **(en)**   * [[http://​www.imagemagick.org/​Usage|De nombreux exemples]] **(en)**
   * [[http://​www.fmwconcepts.com/​imagemagick/​multicrop2/​index.php|Pour aller plus loin : de nombreux scripts pour Imagemagick]] **(en)**   * [[http://​www.fmwconcepts.com/​imagemagick/​multicrop2/​index.php|Pour aller plus loin : de nombreux scripts pour Imagemagick]] **(en)**
Ligne 436: Ligne 490:
 ---- ----
  
- //​Contributeurs principaux : [[:​utilisateurs:​kanor]],​ [[:​utilisateurs:​ZondeR]],​ [[:​utilisateurs:​Zococo]],​ moko138.//+ //​Contributeurs principaux : [[:​utilisateurs:​kanor]],​ [[:​utilisateurs:​ZondeR]],​ [[:​utilisateurs:​Zococo]],​ moko138, [[:​utilisateurs:​bcag2]].//
  • imagemagick.1686917119.txt.gz
  • Dernière modification: Le 16/06/2023, 14:05
  • par bcag2