Différences
Ci-dessous, les différences entre deux révisions de la page.
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:06] bcag2 [Voir aussi] |
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)** |