No description
  • C++ 83.5%
  • PowerShell 12.4%
  • Shell 1.8%
  • CMake 1.5%
  • Batchfile 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
sense 6b8b741663
Some checks failed
Build & Release EC2 / Windows x64 (push) Failing after 47s
[🔧] CI/CD - Added Build Workflows
2026-08-18 15:20:29 +02:00
.forgejo/workflows [🔧] CI/CD - Added Build Workflows 2026-08-18 15:20:29 +02:00
.github [🔧] CI/CD - Added Build Workflows 2026-08-18 15:20:29 +02:00
src [] New Feature - Added linux native support 2026-08-18 15:18:56 +02:00
.gitattributes [] New Feature - Added linux native support 2026-08-18 15:18:56 +02:00
.gitignore [] New Feature - Added linux native support 2026-08-18 15:18:56 +02:00
build.cmd Auto save - 2026-08-17 23:03:02 2026-08-17 23:03:02 +02:00
build.ps1 Auto save - 2026-08-17 23:05:37 2026-08-17 23:05:37 +02:00
build.sh [] New Feature - Added linux native support 2026-08-18 15:18:56 +02:00
CMakeLists.txt [] New Feature - Added linux native support 2026-08-18 15:18:56 +02:00
README.md [] New Feature - Added linux native support 2026-08-18 15:18:56 +02:00

Banner EC2

Latest release Build and release Windows x64 Linux x64 C++17

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

  • 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 dImageMagick lorsquil 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 linvite de commandes :

.\ec2.exe --help

EC2 utilise ImageMagick comme moteur de conversion. Sil nest pas présent, EC2 tente de linstaller 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 variable PATH pour pouvoir exécuter ec2 depuis nimporte 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 nest 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 dun fichier existant.
--formats Affiche les formats de sortie disponibles.
-h, --help Affiche laide générale.
-h -f FORMAT Affiche les options avancées dun format.
--help FORMAT Variante courte de laide par format.

Fichier de sortie

Sans -o, le résultat est créé à côté de limage dorigine :

.\ec2.exe "C:\Photos\vacances.png" -format webp
# Résultat : C:\Photos\vacances.webp

Si lentrée possède déjà lextension demandée, EC2 ajoute _converted pour ne pas remplacer loriginal :

photo.jpg -> photo_converted.jpg

EC2 refuse décraser un fichier existant par défaut. Utilisez --force pour lautoriser explicitement :

.\ec2.exe image.png -format jpg --force

Formats

Formats dentré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 dun format dans cette liste signifie quEC2 laccepte comme entrée. Le décodage réel dépend des codecs et délégués disponibles dans linstallation dImageMagick.

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 laide générale pour conserver une sortie lisible. Affichez laide 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 nagrandit 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 lorientation EXIF avant le redimensionnement.

Redimensionnement

Ajustement proportionnel

.\ec2.exe photo.jpg -format webp --width 1920 --height 1080 --fit max

Limage 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

Limage remplit entièrement la zone de 800 × 800, puis lexcé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 lorientation 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 dexé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, lexé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 nest passée à un interpréteur shell.

Structure du projet

EC2/
├── .github/workflows/   Workflows GitHub Actions
├── src/
│   ├── main.cpp         Point dentrée et orchestration
│   ├── cli.*            Analyse de la ligne de commande
│   ├── formats.*        Formats dentré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 dentré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=scale peut déformer limage puisque les proportions ne sont pas conservées.

Publication dune 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.