Utiliser SIPS pour convertir PNG en JPG avec une commande en une ligne

LightNode
By LightNode ·

Introduction

Lorsqu'il s'agit de traitement d'images sur macOS, le Système de Traitement d'Images Scriptable (SIPS) passe souvent inaperçu. SIPS est un outil puissant en ligne de commande qui est préinstallé avec macOS, offrant une gamme de fonctionnalités de traitement d'images telles que le redimensionnement, la conversion de format et les ajustements de couleur.

Pour les utilisateurs qui ont besoin d'un moyen rapide et efficace de convertir des images d'un format à un autre—par exemple, de PNG à JPG—SIPS fournit une solution élégante. En tirant parti d'une simple commande en une ligne, vous pouvez convertir des images en quelques secondes sans nécessiter de logiciel supplémentaire. Cet article explore comment vous pouvez utiliser SIPS pour effectuer cette tâche et met en avant ses avantages.

Utiliser SIPS pour convertir PNG en JPG

Pourquoi utiliser SIPS pour la conversion d'images ?

SIPS, abréviation de Système de Traitement d'Images Scriptable, est un outil puissant en ligne de commande inclus avec macOS. Il est particulièrement utile pour effectuer diverses tâches de manipulation d'images, telles que le redimensionnement, la conversion de format et l'édition de métadonnées. Voici pourquoi SIPS se distingue pour la conversion d'images :

1. Préinstallé et prêt à l'emploi

Contrairement aux outils tiers tels qu'ImageMagick ou Photoshop, SIPS est préinstallé sur macOS. Cela élimine le besoin d'installer des logiciels supplémentaires, ce qui en fait un choix pratique pour des tâches rapides.

2. Léger et efficace

SIPS est conçu pour gérer les besoins courants de traitement d'images sans complexité inutile. Il fonctionne directement depuis le terminal, offrant des performances rapides sans nécessiter d'interface graphique.

3. Simple et scriptable

Les commandes SIPS sont simples, ce qui permet aux débutants comme aux utilisateurs avancés d'effectuer des tâches facilement. Sa compatibilité avec les scripts shell permet un traitement par lots, une automatisation et une intégration transparente dans des flux de travail plus larges.

4. Polyvalence des formats

SIPS prend en charge une large gamme de formats d'images, y compris :

  • Formats d'entrée : PNG, JPEG, TIFF, BMP, et plus.

  • Formats de sortie : JPEG, HEIC, PNG, et autres.

5. Automatisation et évolutivité

Utiliser SIPS avec des scripts shell ou des boucles vous permet de traiter des centaines, voire des milliers d'images en une seule commande, ce qui le rend idéal pour des projets à grande échelle.

En tirant parti de ces forces, SIPS devient un outil inestimable pour les utilisateurs de macOS cherchant à simplifier les conversions de formats d'images, y compris la tâche populaire de conversion de fichiers PNG en JPG. Ensuite, nous explorerons comment créer une simple commande en une ligne pour accomplir cela.

Commande en une ligne pour convertir PNG en JPG

Convertir des fichiers PNG en JPG à l'aide de SIPS est incroyablement simple. Avec juste une commande, vous pouvez transformer un format d'image rapidement et efficacement. Voici une explication détaillée de la structure de la commande et un exemple de son utilisation.

Syntaxe de base

La commande SIPS pour convertir un format d'image ressemble à ceci :


sips -s format jpeg input.png --out output.jpg

Décomposition de la commande

  1. sips : Invoque l'outil SIPS.

  2. -s format jpeg : Spécifie le format cible comme JPEG.

    • Le drapeau -s vous permet de définir des propriétés, dans ce cas, le format de sortie.
  3. input.png : Le chemin vers le fichier d'entrée (votre image source au format PNG).

  4. --out output.jpg : Indique le chemin et le nom de fichier de sortie souhaités.

Commande d'exemple

Voici un exemple pratique :


sips -s format jpeg example.png --out example.jpg

  • Entrée : example.png

  • Sortie : example.jpg

Cette commande prend example.png, le convertit au format JPEG et l'enregistre sous le nom example.jpg.

Considérations sur le chemin des fichiers

  • Si vos fichiers sont dans le même répertoire, vous pouvez utiliser simplement le nom du fichier (par exemple, input.png).

  • Pour des fichiers situés à des emplacements différents, spécifiez le chemin complet ou relatif (par exemple, /path/to/input.png).

Conversion par lots pour plusieurs fichiers

Si vous devez convertir plusieurs fichiers PNG en JPG dans un répertoire, vous pouvez utiliser une boucle. Par exemple :


for file in *.png; do

    sips -s format jpeg "$file" --out "${file%.png}.jpg"

done

Explication de la boucle :

  1. for file in *.png : Itère sur tous les fichiers PNG dans le répertoire courant.

  2. sips -s format jpeg "$file" : Convertit le fichier actuel en JPG.

  3. "${file%.png}.jpg" : Sort le fichier avec le même nom mais une extension .jpg.

Gestion des cas particuliers

Bien que SIPS soit un outil puissant et fiable, certaines situations peuvent survenir où la commande ne fonctionne pas comme prévu. Comprendre et traiter ces cas particuliers peut vous faire gagner du temps et garantir un processus de conversion fluide.

1. Fichiers corrompus ou non pris en charge

Problème :

Si le fichier PNG est corrompu ou non pris en charge par SIPS, vous pouvez rencontrer une erreur lors de la conversion.

Solution :

  • Vérifiez l'intégrité du fichier avant la conversion :

    
    file input.png
    
    

    Cette commande vérifie le type de fichier. Si la sortie ne correspond pas à un type de fichier PNG attendu, le fichier peut être invalide.

  • Réexportez le fichier corrompu à l'aide d'un éditeur d'images ou d'un outil plus robuste comme ImageMagick.

2. Noms de fichiers non standards

Problème :

Les fichiers avec des espaces, des caractères spéciaux ou des extensions inhabituelles peuvent provoquer des erreurs dans les commandes SIPS.

Solution :

  • Utilisez des guillemets autour des noms de fichiers pour gérer les espaces :

    
    sips -s format jpeg "mon fichier.png" --out "mon fichier.jpg"
    
    
  • Assainissez les noms de fichiers avant le traitement :

    
    for file in *.png; do
    
        mv "$file" "$(echo "$file" | tr ' ' '_')"
    
    done
    
    

3. Écrasement de fichiers existants

Problème :

Si un fichier de sortie existe déjà, SIPS l'écrasera sans avertissement.

Solution :

  • Vérifiez l'existence du fichier de sortie avant la conversion :

    
    if [ -f output.jpg ]; then
    
        echo "Le fichier output.jpg existe déjà. Ignorer..."
    
    else
    
        sips -s format jpeg input.png --out output.jpg
    
    fi
    
    
  • Utilisez une convention de nommage pour éviter l'écrasement :

    
    sips -s format jpeg input.png --out output_$(date +%s).jpg
    
    

4. Problèmes de profil de couleur

Problème :

Le JPEG résultant peut apparaître différent du PNG en raison de différences dans les profils de couleur.

Solution :

  • Utilisez l'option -m pour définir explicitement un profil de couleur :

    
    sips -s format jpeg -m /System/Library/ColorSync/Profiles/sRGB.icc input.png --out output.jpg
    
    

5. Performance du traitement par lots

Problème :

Le traitement d'un grand nombre de fichiers de manière séquentielle peut prendre du temps.

Solution :

  • Utilisez GNU Parallel pour un traitement par lots plus rapide :

    
    ls *.png | parallel 'sips -s format jpeg {} --out {.}.jpg'
    
    

6. Tailles de fichiers importantes

Problème :

Les fichiers JPEG convertis à partir de PNG haute résolution peuvent encore être volumineux.

Solution :

  • Ajustez les paramètres de compression lors de la conversion :

    
    sips -s formatOptions low input.png --out output.jpg
    
    

    Le drapeau formatOptions peut prendre des valeurs comme low, normal ou high.

Conseils de débogage

  • Mode verbeux : Ajoutez le drapeau -v à vos commandes pour des sorties plus détaillées :

    
    sips -v -s format jpeg input.png --out output.jpg
    
    
  • Journaliser les erreurs : Redirigez les erreurs vers un fichier journal pour révision :

    
    sips -s format jpeg input.png --out output.jpg 2>>error.log
    
    

Questions Fréquemment Posées (FAQ) sur la conversion d'images SIPS

1. Qu'est-ce que SIPS ?

SIPS (Système de Traitement d'Images Scriptable) est un outil en ligne de commande disponible sur macOS. Il permet aux utilisateurs de manipuler des images, y compris le redimensionnement, le recadrage et la conversion de format.

2. Comment vérifier si SIPS est disponible sur mon système ?

SIPS est préinstallé sur macOS. Pour vérifier s'il est disponible, exécutez la commande suivante dans votre terminal :


sips --help

Si vous voyez une liste de commandes, SIPS est installé et prêt à l'emploi.

3. Quels formats d'images SIPS prend-il en charge ?

SIPS prend en charge une variété de formats d'entrée et de sortie, y compris :

  • Entrée : PNG, JPEG, TIFF, BMP, GIF, HEIC, et plus.

  • Sortie : JPEG, PNG, HEIC, TIFF, etc.

Pour voir la liste complète des formats pris en charge, exécutez :


man sips

4. Comment convertir un seul PNG en JPG à l'aide de SIPS ?

Utilisez la commande suivante :


sips -s format jpeg input.png --out output.jpg

5. Puis-je convertir plusieurs fichiers PNG en JPG à la fois ?

Oui, vous pouvez utiliser une boucle dans le terminal :


for file in *.png; do sips -s format jpeg "$file" --out "${file%.png}.jpg"; done

Cela convertit tous les fichiers PNG dans le répertoire courant en JPG.

6. Comment éviter d'écraser des fichiers existants lors de la conversion ?

Vous pouvez vérifier si un fichier existe avant de convertir :


if [ ! -f output.jpg ]; then

    sips -s format jpeg input.png --out output.jpg

fi

Alternativement, utilisez des noms uniques pour les fichiers de sortie :


sips -s format jpeg input.png --out output_$(date +%s).jpg

7. Comment réduire la taille du fichier de l'image de sortie ?

Utilisez le drapeau -s formatOptions pour spécifier les niveaux de compression pour JPEG :


sips -s format jpeg -s formatOptions low input.png --out output.jpg

Les options incluent low, normal et high.

8. Pourquoi mon image convertie a-t-elle une couleur différente ?

Cela est probablement dû à des différences dans les profils de couleur. Pour définir un profil spécifique, utilisez :


sips -s format jpeg -m /System/Library/ColorSync/Profiles/sRGB.icc input.png --out output.jpg

9. Puis-je utiliser SIPS sur des systèmes non macOS ?

Non, SIPS est exclusif à macOS car il repose sur les frameworks de traitement d'images d'Apple.

10. Comment gérer les fichiers avec des espaces dans leurs noms ?

Entourez les chemins de fichiers de guillemets :


sips -s format jpeg "mon fichier.png" --out "mon fichier.jpg"

11. Comment gérer les erreurs lors de la conversion ?

Redirigez les erreurs vers un fichier journal pour révision :


sips -s format jpeg input.png --out output.jpg 2>>error.log

Vous pouvez également ajouter le drapeau -v pour une sortie verbeuse :


sips -v -s format jpeg input.png --out output.jpg

12. Quelles sont les limitations de SIPS ?

  • Fonctionnalités d'édition avancées limitées par rapport à des outils comme ImageMagick.

  • Ne peut pas gérer des formats d'images corrompus ou très non standards.

  • Écrase les fichiers existants sans avertissement, sauf si vérifié explicitement.

13. Que faire si SIPS est trop lent pour le traitement par lots ?

Pour un traitement plus rapide d'un grand nombre d'images, envisagez de combiner SIPS avec des outils comme GNU Parallel :


ls *.png | parallel 'sips -s format jpeg {} --out {.}.jpg'

14. Comment redimensionner une image tout en la convertissant ?

Vous pouvez redimensionner une image à des dimensions spécifiques en utilisant les options --resampleWidth ou --resampleHeight :


sips -s format jpeg --resampleWidth 800 input.png --out output.jpg