CommunityImagegithub.com

alirazawebservice-rgb/image-compress-automation

Utilisez-le pour compresser, redimensionner ou convertir en masse des images de produits (PNG, JPG, WEBP, AVIF) en fichiers JPG, WebP ou AVIF optimisés pour le Web, configurer le dossier de travail d'un utilisateur sur une nouvelle machine, ou résoudre les problèmes de dimensionnement en hauteur, d'erreurs de rapport hauteur/largeur et d'options en ligne de commande.

Qu'est-ce que image-compress-automation ?

Cette compétence permet de redimensionner et compresser en masse des images de produits (PNG, JPG, WebP, AVIF) en fichiers JPG, WebP ou AVIF prêts pour le Web, en utilisant la bibliothèque `sharp`. Elle conserve les noms de fichiers originaux, aplatit les PNG transparents sur fond blanc et préserve strictement les proportions (redimensionnement automatique à une hauteur unique de 800 px ou vérification exacte des dimensions WxH). L'outil est conçu pour un usage en ligne de commande automatisé via `node bin/cli.js` avec des options obligatoires (`--dir`, `--size`, `--format`) afin d'éviter toute action silencieuse ou non confirmée. Il est idéal pour les développeurs et les agents IA qui doivent traiter des lots d'images sur des machines locales (macOS, Windows, Linux) garantissant qu'aucune image n'est recadrée ou déformée, et que toute incohérence de rapport hauteur/largeur est signalée plutôt que corrigée automatiquement.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/alirazawebservice-rgb/image-compress-automation/tree/HEAD/skills/image-compress-automation

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Automatisation de la Compression d'Images

Aperçu

Redimensionnez et compressez en masse des images de produits en fichiers .jpg, .webp ou .avif prêts pour le Web en quelques secondes à l'aide de sharp, tout en préservant les noms de fichiers originaux, en aplatissant les PNG transparents sur fond blanc et en respectant strictement les proportions (redimensionnement automatique à une hauteur unique de 800 px ou vérification exacte LxH).

Principe fondamental : Ne jamais supposer un lecteur de travail (F:\), ne jamais revenir silencieusement à 800x800 ou jpg sans confirmation, et ne jamais recadrer ou déformer une image.

Référence rapide

SituationAction
Premier lancement (node_modules/ manquant)Exécutez npm install (nécessite Node.js >= 20.0.0)
.imagerc.json absent et --dir non fourniDemandez à l'utilisateur son dossier de travail avant d'exécuter
Taille/hauteur ou format cible omisDemandez à l'utilisateur la taille (800 px hauteur ou LxH) et le format (jpg, webp ou avif) avant d'exécuter
L'utilisateur donne seulement la hauteur (ex. 800px en webp)Passez --size 800px --format webp (la largeur proportionnelle est calculée automatiquement par image)
L'utilisateur donne le dossier de travail + LxH + formatExécutez `node bin/cli.js --dir "" --size "" --format <jpg
L'utilisateur a des dossiers source et d'export séparésExécutez `node bin/cli.js --input "<entrée>" --output "" --size "<px
Décalage du rapport hauteur/largeur exact LxHNe pas recadrer/étirer ; signaler les tailles correspondantes suggérées à partir de la sortie (ou suggérer le mode hauteur 800 px si approprié)
Fond PNG transparentAutomatiquement aplati sur #ffffff (modifiable via --bg "#hex")

Workflow Pas à Pas pour l'Agent

Suivez ces étapes dans l'ordre chaque fois qu'un utilisateur vous demande de compresser ou redimensionner des images en utilisant ce dépôt :

1. Vérifier la Configuration et les Dépendances

  1. Vérifiez que node_modules/sharp existe. Si le dépôt vient d'être cloné, exécutez npm install.
  2. Vérifiez si .imagerc.json existe à la racine du dépôt (sauf si l'utilisateur a déjà spécifié un dossier dans sa demande).
    • Si ni .imagerc.json n'existe ni l'utilisateur n'a nommé un dossier, demandez d'abord à l'utilisateur : "Quel dossier souhaitez-vous utiliser pour vos dossiers d'images input et output ? (Par exemple ./ pour ce dossier de projet, ~/Desktop/store-images ou D:\Images.)"
    • Ne supposez jamais F:\Image Compress Automation ou ne devinez pas ~/Desktop.

2. Inspecter input/ et Confirmer la Taille + le Format

  1. Assurez-vous que <dossier>/input et <dossier>/output existent (ou passez --dir "<dossier>" pour que la CLI les crée).
  2. Vérifiez combien d'images prises en charge (.png, .jpg, .jpeg, .webp, .avif) se trouvent dans le dossier d'entrée. Si 0, indiquez à l'utilisateur le chemin exact <dossier>/input où déposer ses images et arrêtez-vous.
  3. Si l'utilisateur n'a pas explicitement indiqué la hauteur/dimensions cible ou le format de sortie dans la demande actuelle, demandez avant d'exécuter — même si les valeurs par défaut sans options/interactives sont 800x800 et jpg.

3. Exécuter de Manière Non Interactive et Rapporter les Résultats

Exécutez la CLI explicitement avec des options (évitez node bin/cli.js nu dans les shells d'outils non-TTY pour ne pas reposer sur des valeurs par défaut silencieuses) :

node bin/cli.js --dir "<dossier-de-travail>" --size "<HAUTEURpx ou LARGEURxHAUTEUR>" --format "<jpg|webp|avif>"

Options facultatives lorsque l'utilisateur les demande :

  • --format <jpg|webp|avif> (par défaut jpg ; webp est environ 25–35% plus petit, avif est environ 30–50% plus petit)
  • --quality <1-100> (par défaut 85 pour JPG mozjpeg / WebP effort: 6, et 65 pour AVIF effort: 4)
  • --bg "<#hex>" (par défaut #ffffff pour l'aplatissement des PNG transparents)
  • --strict (renvoie un code de sortie 1 si un fichier est ignoré ou échoue)

Si l'utilisateur souhaite que ce dossier de travail soit mémorisé pour les exécutions interactives en terminal (npm start), vous pouvez mentionner ou enregistrer .imagerc.json (ignoré par git) ou lui faire exécuter npm run setup.

4. Vérifier et Résumer la Sortie

Rapportez directement à partir de la sortie de la commande :

  • Nombres total converti / ignoré / échoué et espace économisé (Mo et %).
  • Chemin exact du dossier de sortie (<dossier-de-travail>/output).
  • Pour tout saut décalage-du-rapport-hauteur/largeur, remontez les dimensions/ratio d'origine du fichier et les dimensions proportionnelles suggérées affichées par la CLI.

Erreurs Courantes et Signaux d'Alarme

Pensée / ErreurPourquoi ça échoue et Que Faire à la Place
"Je vais juste exécuter node bin/cli.js sans --size ou --format"La valeur par défaut non-TTY choisit silencieusement 800x800 et jpg. Confirmez toujours le dossier, la taille/hauteur (800 px ou LxH) et le format (jpg/webp/avif) avec l'utilisateur d'abord et passez --dir, --size et --format.
"L'utilisateur veut du 800×800 sur une photo 1:2 — je vais passer fit: cover ou écrire un script de recadrage personnalisé"Enfreint la règle fondamentale : ne jamais recadrer ou étirer silencieusement. Laissez la CLI rejeter les décalages et donner des dimensions proportionnelles.
"Je vais commiter .imagerc.json ou des PNG de test dans input/".imagerc.json, input/* et output/* (sauf .gitkeep) sont ignorés par git pour protéger la vie privée de l'utilisateur. Gardez-les non suivis.
"Je vais passer --input sans --output"Sans --output ou --dir, la sortie tombe par défaut dans <cwd>/output. Passez toujours --dir (flux standard) ou les deux --input et --output.

Skills associés