275 lines
5.0 KiB
Markdown
275 lines
5.0 KiB
Markdown
## 1. Présentation générale
|
||
|
||
ImageMagick est une suite d’outils en ligne de commande permettant de **créer, convertir, modifier et analyser des images**.
|
||
Il supporte plus de 200 formats (JPEG, PNG, WebP, TIFF, PDF, SVG, HEIC, etc.) et fonctionne sans interface graphique, ce qui le rend idéal pour :
|
||
|
||
* les serveurs,
|
||
* les scripts automatisés,
|
||
* les pipelines CI/CD,
|
||
* les traitements en masse,
|
||
* les environnements sans interface graphique (SSH, Docker, etc.).
|
||
|
||
Depuis la version 7, la commande principale est `magick`, qui remplace progressivement les anciennes commandes (`convert`, `identify`, `mogrify`, etc.).
|
||
|
||
---
|
||
|
||
## 2. Installation
|
||
|
||
Sous Debian / Ubuntu :
|
||
|
||
```bash
|
||
sudo apt install imagemagick
|
||
```
|
||
|
||
Vérification :
|
||
|
||
```bash
|
||
magick -version
|
||
```
|
||
|
||
---
|
||
|
||
## 3. Principe fondamental de fonctionnement
|
||
|
||
ImageMagick fonctionne selon une logique simple :
|
||
|
||
```
|
||
magick [entrée] [options] [sortie]
|
||
```
|
||
|
||
Chaque option modifie l’image en mémoire, dans l’ordre où elle est écrite.
|
||
|
||
Exemple :
|
||
|
||
```bash
|
||
magick input.jpg -resize 800x600 -quality 85 output.jpg
|
||
```
|
||
|
||
➡️ L’image est chargée → redimensionnée → compressée → enregistrée.
|
||
|
||
---
|
||
|
||
## 4. Conversion de format
|
||
|
||
### Conversion simple
|
||
|
||
```bash
|
||
magick image.png image.jpg
|
||
```
|
||
|
||
Cela convertit automatiquement le format selon l’extension du fichier de sortie.
|
||
|
||
### Conversion avec changement de profondeur de couleur
|
||
|
||
```bash
|
||
magick image.png -depth 8 image.jpg
|
||
```
|
||
|
||
Utile pour réduire la taille ou assurer une compatibilité.
|
||
|
||
---
|
||
|
||
## 5. Redimensionnement des images
|
||
|
||
### Redimensionnement simple
|
||
|
||
```bash
|
||
magick image.jpg -resize 800x600 image_resized.jpg
|
||
```
|
||
|
||
⚠️ Cela force exactement ces dimensions, quitte à déformer l’image.
|
||
|
||
---
|
||
|
||
### Conserver les proportions (recommandé)
|
||
|
||
```bash
|
||
magick image.jpg -resize 800x600\> image_resized.jpg
|
||
```
|
||
|
||
Le `>` signifie :
|
||
|
||
> Ne redimensionner que si l’image dépasse ces dimensions.
|
||
|
||
---
|
||
|
||
### Redimensionnement par pourcentage
|
||
|
||
```bash
|
||
magick image.jpg -resize 50% image_small.jpg
|
||
```
|
||
|
||
---
|
||
|
||
## 6. Qualité et compression
|
||
|
||
### Réduire la taille du fichier JPEG
|
||
|
||
```bash
|
||
magick image.jpg -quality 85 image.jpg
|
||
```
|
||
|
||
* 100 : qualité maximale
|
||
* 80–85 : bon compromis web
|
||
* <70 : perte visible
|
||
|
||
---
|
||
|
||
### Suppression des métadonnées (EXIF, GPS, etc.)
|
||
|
||
```bash
|
||
magick image.jpg -strip image.jpg
|
||
```
|
||
|
||
Très utile pour :
|
||
|
||
* anonymisation
|
||
* gain de place
|
||
* conformité RGPD
|
||
|
||
---
|
||
|
||
## 7. Redimensionnement intelligent (crop & resize)
|
||
|
||
### Recadrer une image
|
||
|
||
```bash
|
||
magick image.jpg -crop 800x600+100+50 output.jpg
|
||
```
|
||
|
||
Format :
|
||
|
||
```
|
||
largeur x hauteur + décalage_x + décalage_y
|
||
```
|
||
|
||
---
|
||
|
||
### Remplir un cadre sans déformation
|
||
|
||
```bash
|
||
magick image.jpg -resize 800x600^ -gravity center -extent 800x600 output.jpg
|
||
```
|
||
|
||
Cela :
|
||
|
||
* redimensionne en conservant les proportions
|
||
* coupe l’excédent centré
|
||
|
||
Très utilisé pour les miniatures.
|
||
|
||
---
|
||
|
||
## 8. Traitement par lot
|
||
|
||
### Conversion de tous les fichiers d’un dossier
|
||
|
||
```bash
|
||
for f in *.jpg; do
|
||
magick "$f" "${f%.jpg}.png"
|
||
done
|
||
```
|
||
|
||
### Redimensionnement massif (avec écrasement)
|
||
|
||
```bash
|
||
mogrify -resize 1600x1600\> *.jpg
|
||
```
|
||
|
||
⚠️ `mogrify` modifie les fichiers originaux.
|
||
|
||
---
|
||
|
||
## 9. Ajout de texte et filigranes
|
||
|
||
### Ajouter un texte
|
||
|
||
```bash
|
||
magick image.jpg \
|
||
-gravity southeast \
|
||
-pointsize 24 \
|
||
-fill white \
|
||
-annotate +10+10 "© MonSite" \
|
||
image_marked.jpg
|
||
```
|
||
|
||
### Ajouter un watermark (image)
|
||
|
||
```bash
|
||
magick image.jpg watermark.png -gravity center -composite output.jpg
|
||
```
|
||
|
||
---
|
||
|
||
## 10. Gestion des couleurs
|
||
|
||
### Convertir en niveaux de gris
|
||
|
||
```bash
|
||
magick image.jpg -colorspace Gray output.jpg
|
||
```
|
||
|
||
### Ajuster luminosité / contraste
|
||
|
||
```bash
|
||
magick image.jpg -brightness-contrast 10x5 output.jpg
|
||
```
|
||
|
||
---
|
||
|
||
## 11. Informations sur une image
|
||
|
||
### Détails complets
|
||
|
||
```bash
|
||
magick identify image.jpg
|
||
```
|
||
|
||
### Informations étendues
|
||
|
||
```bash
|
||
magick identify -verbose image.jpg
|
||
```
|
||
|
||
---
|
||
|
||
## 12. Formats modernes
|
||
|
||
### Conversion vers WebP
|
||
|
||
```bash
|
||
magick image.jpg -quality 80 image.webp
|
||
```
|
||
|
||
### Conversion vers AVIF
|
||
|
||
```bash
|
||
magick image.jpg image.avif
|
||
```
|
||
|
||
---
|
||
|
||
## 13. Bonnes pratiques
|
||
|
||
* Toujours tester sur une copie
|
||
* Éviter `mogrify` sans sauvegarde
|
||
* Utiliser `-strip` pour le web
|
||
* Privilégier `libvips` pour très gros volumes
|
||
* Automatiser via scripts Bash
|
||
|
||
---
|
||
|
||
## 14. Cas d’usage typiques
|
||
|
||
* Préparation d’images pour un site web
|
||
* Génération de miniatures
|
||
* Normalisation d’un catalogue photo
|
||
* Conversion massive pour archivage
|
||
* Nettoyage de métadonnées avant publication
|
||
|
||
---
|
||
|
||
ImageMagick est un outil extrêmement puissant, capable de remplacer de nombreux logiciels graphiques lorsqu’on maîtrise sa syntaxe.
|
||
Il s’intègre parfaitement dans des scripts, des serveurs et des chaînes de traitement automatisées.
|
||
|
||
Pour un usage professionnel ou intensif, c’est un outil incontournable sous Linux. |