- C++ 83.5%
- PowerShell 12.4%
- Shell 1.8%
- CMake 1.5%
- Batchfile 0.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| .github | ||
| src | ||
| .gitattributes | ||
| .gitignore | ||
| build.cmd | ||
| build.ps1 | ||
| build.sh | ||
| CMakeLists.txt | ||
| README.md | ||
EC2 convertit des images, fichiers RAW et documents vers des formats courants avec une syntaxe courte et des options avancées adaptées au format de sortie.
Installation · Utilisation · Formats · Options avancées · Compilation
Sommaire
- Fonctionnalités
- Installation
- Utilisation
- Formats
- Options avancées
- Exemples
- Compilation
- Dépendances
- Structure du projet
- Limites connues
- Publication d’une version
Fonctionnalités
- Conversion depuis de nombreux formats classiques, RAW et documentaires.
- Douze formats de sortie : AVIF, BMP, EPS, GIF, ICO, JPG, PDF, PNG, PS, PSD, TIFF et WEBP.
- Redimensionnement proportionnel, recadrage ou mise à l’échelle forcée.
- Orientation automatique à partir des métadonnées EXIF.
- Conservation ou suppression des métadonnées.
- Réglage de la qualité pour JPG, PNG et WEBP.
- Gestion sûre des fichiers existants avec confirmation explicite via
--force. - Installation automatique d’ImageMagick lorsqu’il est absent.
- Chemins Unicode et chemins contenant des espaces.
Installation
Windows x64
Téléchargez ec2.exe
depuis la dernière version publiée,
puis placez-le dans le dossier de votre choix.
Dans PowerShell ou l’invite de commandes :
.\ec2.exe --help
EC2 utilise ImageMagick comme moteur de conversion. S’il n’est pas présent,
EC2 tente de l’installer automatiquement avec winget lors de la première
conversion. Une connexion Internet peut donc être nécessaire au premier
lancement.
Tip
Ajoutez le dossier contenant
ec2.exeà votre variablePATHpour pouvoir exécuterec2depuis n’importe quel répertoire.
Linux x64
Téléchargez ec2-linux-x64.tar.gz depuis la
dernière version publiée, puis :
tar -xzf ec2-linux-x64.tar.gz
chmod +x ec2-linux-x64
sudo install ec2-linux-x64 /usr/local/bin/ec2
ec2 --help
EC2 recherche ImageMagick 7 avec magick, puis accepte également ImageMagick
6 avec convert. Si aucun moteur n’est présent, il tente une installation via
apt-get, dnf, yum, pacman, zypper ou apk.
Utilisation
ec2.exe <image> -format <format> [-o <sortie>] [--force] [options]
Conversion minimale :
.\ec2.exe "image.png" -format jpg
Options générales
| Option | Description |
|---|---|
-format FORMAT, -f FORMAT |
Définit le format de sortie. |
-o CHEMIN, --output CHEMIN |
Définit le fichier de sortie. |
--force |
Autorise l’écrasement d’un fichier existant. |
--formats |
Affiche les formats de sortie disponibles. |
-h, --help |
Affiche l’aide générale. |
-h -f FORMAT |
Affiche les options avancées d’un format. |
--help FORMAT |
Variante courte de l’aide par format. |
Fichier de sortie
Sans -o, le résultat est créé à côté de l’image d’origine :
.\ec2.exe "C:\Photos\vacances.png" -format webp
# Résultat : C:\Photos\vacances.webp
Si l’entrée possède déjà l’extension demandée, EC2 ajoute _converted pour ne
pas remplacer l’original :
photo.jpg -> photo_converted.jpg
EC2 refuse d’écraser un fichier existant par défaut. Utilisez --force pour
l’autoriser explicitement :
.\ec2.exe image.png -format jpg --force
Formats
Formats d’entrée
| Catégorie | Formats acceptés |
|---|---|
| Images courantes | AVIF, BMP, GIF, HEIC, HEIF, ICO, JFIF, JPEG, JPG, PNG, PPM, TGA, TIF, TIFF, WEBP |
| Images RAW | 3FR, ARW, CR2, CR3, CRW, DCR, DNG, ERF, MOS, MRW, NEF, ORF, PEF, RAF, RAW, RW2, X3F |
| Documents et création | EPS, ICNS, ODG, PS, PSB, PSD, PUB, XCF, XPS |
La présence d’un format dans cette liste signifie qu’EC2 l’accepte comme entrée. Le décodage réel dépend des codecs et délégués disponibles dans l’installation d’ImageMagick.
Formats de sortie
AVIF BMP EPS GIF ICO JPG
PDF PNG PS PSD TIFF WEBP
Pour obtenir cette liste depuis le programme :
.\ec2.exe --formats
Options avancées
Les détails restent hors de l’aide générale pour conserver une sortie lisible. Affichez l’aide du format voulu :
.\ec2.exe -h -f jpg
.\ec2.exe --help png
.\ec2.exe --help ico
Tous les formats de sortie acceptent les options communes suivantes :
| Option | Valeur | Description |
|---|---|---|
--width N |
1..100000 |
Largeur maximale ou forcée en pixels. |
--height N |
1..100000 |
Hauteur maximale ou forcée en pixels. |
--fit max |
Par défaut | Conserve les proportions et n’agrandit pas les petites images. |
--fit crop |
Largeur + hauteur requises | Remplit la zone puis recadre au centre. |
--fit scale |
Largeur + hauteur requises | Force exactement la largeur et la hauteur. |
--strip yes|no |
no |
Supprime ou conserve les métadonnées. |
--auto-orient yes|no |
yes |
Applique l’orientation EXIF avant le redimensionnement. |
Redimensionnement
Ajustement proportionnel
.\ec2.exe photo.jpg -format webp --width 1920 --height 1080 --fit max
L’image tient dans une zone de 1920 × 1080 sans être déformée ni agrandie si elle est déjà plus petite.
Remplissage et recadrage
.\ec2.exe photo.jpg -format png --width 800 --height 800 --fit crop
L’image remplit entièrement la zone de 800 × 800, puis l’excédent est retiré au centre.
Dimensions forcées
.\ec2.exe photo.jpg -format bmp --width 640 --height 480 --fit scale
Le résultat mesure exactement 640 × 480, même si cela modifie les proportions.
Qualité et compression
--quality accepte une valeur de 1 à 100 pour les formats suivants :
| Format | Comportement | Valeur par défaut |
|---|---|---|
| JPG | Qualité JPEG ; une valeur élevée réduit la compression. | Automatique |
| PNG | Niveau de compression zlib et filtre PNG. | 75 |
| WEBP | Qualité de compression WEBP. | Automatique |
.\ec2.exe image.png -format jpg --quality 90
.\ec2.exe image.jpg -format webp --quality 80
.\ec2.exe image.bmp -format png --quality 75
Valeurs particulières
Le format ICO utilise par défaut une zone de 32 × 32 pixels :
.\ec2.exe logo.png -format ico
Avec fit=max, les proportions sont conservées. Pour forcer un carré exact :
.\ec2.exe logo.png -format ico --width 32 --height 32 --fit scale
Exemples
RAW vers WEBP
.\ec2.exe "C:\Photos\photo.CR2" -format webp --quality 85
PNG vers PDF
.\ec2.exe image.png -format pdf --width 1920 --height 1080 --fit max
Image carrée pour un avatar
.\ec2.exe portrait.jpg -format avif --width 512 --height 512 --fit crop --strip yes
Sortie personnalisée
.\ec2.exe source.psd -format png -o "C:\Exports\resultat.png" --force
Corriger l’orientation sans supprimer les métadonnées
.\ec2.exe photo.jpg -format tiff --auto-orient yes --strip no
Compilation
EC2 cible Windows et Linux x64 et utilise C++17 avec CMake.
Windows
Clonez le dépôt puis lancez :
git clone https://github.com/udpdog/EC2.git
cd EC2
.\build.cmd
build.cmd contourne la stratégie d’exécution PowerShell uniquement pour le
processus de compilation. Il ne modifie pas la politique globale du système.
Le script installe automatiquement avec winget, si nécessaire :
- ImageMagick ;
- CMake ;
- Visual Studio Build Tools 2022 avec les outils C++.
À la fin de la compilation, l’exécutable est copié vers :
EC2\ec2.exe
Linux
Sous Debian ou Ubuntu :
sudo apt update
sudo apt install build-essential cmake imagemagick
git clone https://github.com/udpdog/EC2.git
cd EC2
bash ./build.sh
./ec2 --help
Le résultat est créé dans EC2/ec2. Pour les autres distributions, installez
CMake, un compilateur C++17 et ImageMagick avec votre gestionnaire de paquets.
Compilation manuelle
Si les outils sont déjà installés :
cmake -S . -B build
cmake --build build --config Release
Copy-Item .\build\Release\ec2.exe .\ec2.exe
Dépendances
| Dépendance | Utilisation | Installation automatique |
|---|---|---|
| Windows 10/11 x64 ou Linux x64 | Plateformes cibles | — |
| ImageMagick 6 ou 7 | Lecture, transformation et encodage | Oui |
winget ou gestionnaire Linux |
Installation des composants manquants | Requis si un composant manque |
| CMake | Génération du projet | Oui, pour compiler |
| Visual Studio Build Tools | Compilateur C++ | Oui, pour compiler |
EC2 lance ImageMagick directement avec CreateProcessW sous Windows et
posix_spawn sous Linux. Aucune commande de conversion n’est passée à un
interpréteur shell.
Structure du projet
EC2/
├── .github/workflows/ Workflows GitHub Actions
├── src/
│ ├── main.cpp Point d’entrée et orchestration
│ ├── cli.* Analyse de la ligne de commande
│ ├── formats.* Formats d’entrée et de sortie
│ ├── conversion_options.*
│ │ Profils et validation des options avancées
│ ├── imagemagick.* Détection et arguments ImageMagick
│ └── process.* Exécution sécurisée Windows/Linux
├── build.cmd Lanceur de compilation Windows
├── build.ps1 Installation et compilation automatisées
├── build.sh Compilation Linux
└── CMakeLists.txt Configuration CMake
Limites connues
- Les formats RAW sont principalement conçus pour être lus, pas générés.
- La disponibilité de certains formats d’entrée dépend des délégués compilés avec ImageMagick.
- Une image simple convertie en PSD produit généralement un document aplati, sans calques Photoshop complexes.
- Les formats documentaires tels que XPS, PUB ou ODG peuvent nécessiter des composants supplémentaires pour être décodés.
fit=scalepeut déformer l’image puisque les proportions ne sont pas conservées.
Publication d’une version
Le workflow GitHub Actions crée automatiquement une version lorsque vous
envoyez un tag commençant par v :
git tag v1.0.0
git push origin v1.0.0
Le workflow compile et teste séparément Windows x64 et Linux x64, crée la
GitHub Release, puis joint ec2.exe, le binaire Linux et son archive tar.gz.
Développé en C++17 pour Windows et Linux.