Comment supprimer un profil ColorSync d'une image JPEG d'un terminal dans El Capitan?

1

Je souhaite supprimer le profil ColorSync de plusieurs images. Finalement, je voudrais automatiser cela en bash pour pouvoir le traiter facilement dans un fichier ou un dossier à partir du menu contextuel en utilisant un service Automator.

Comment supprimer un profil de couleur d'un fichier image à l'aide de Terminal?

Emeraldo
la source

Réponses:

3

Utilisez sips(système de traitement d'image par script) pour supprimer un profil de couleur ICC d'un fichier image dans El Capitan. sipsfait une tonne d'autres choses aussi.

Pour supprimer le profil ColorSync ICC d'une image:

sips -d profile --deleteColorManagementProperties <imagefile>

Exemple:

MyFILE="${HOME}/Pictures/RemoveMyColorSyncProfile.jpg";
sips -d profile --deleteColorManagementProperties "${MyFILE}";

Il semble prendre en charge les types d’image suivants, mais je me base sur la formatclé de propriété d’image (voir Options dans la page de manuel):

  • jpeg
  • tiff
  • png
  • gif
  • jp2
  • pict
  • bmp
  • qtif
  • psd
  • sgi
  • tga

Reportez-vous à la page de manuel pour plus d’informations ou utilisez l’ sips -haide pour vous aider à faire stdout

Emeraldo
la source
1

Après avoir installé ImageMagick (de préférence avec HomeBrew), exécutez cette commande Terminal:

convert in.jpg +profile "icc" out.jpg

où in.jpg est votre image source et out.jpg, ce que vous voulez nommer votre nouvelle image. Cette commande supprime le profil icc (mais conserve tous les autres) de in.jpg.

Pour voir quels profils a une image, vous pouvez aussi inspecter une image avec ImageMagick:

identify -verbose in.jpg

Les profils se trouvent sous la section "Profils:" de la chaîne de sortie. Certains profils courants sont (vos nombres peuvent varier)

Profile-8bim: 40 bytes
Profile-exif: 1788 bytes
Profile-icc: 30240 bytes
Profile-iptc: 0 bytes
Profile-xmp: 2547 bytes
Zhanwen Chen
la source
0

La réponse de OP @ Emeraldo est conforme à la cible: vous pouvez utiliser la sipscommande de terminal (système de traitement d'image par script) pour supprimer le profil de couleur d'une image JPEG (ou PNG). Cela est souvent nécessaire pour que les couleurs d'une image produite avec une application graphique soient correctement restituées dans un navigateur.

J'ajouterai qu'Apple fournit un script qui le fera pour vous sans que vous ayez à ouvrir un terminal ou à vous rappeler la syntaxe de commande légèrement non triviale. Dans /System/Library/Scripts/ColorSyncest une gouttelette AppleScript, Remove.app. Si vous déposez un ou plusieurs fichiers image dessus, le ou les profils de couleur sont supprimés. Si vous ouvrez le droplet avec Script Editor, vous verrez qu'il exécute une sipscommande, exactement comme @Emeraldo l'a décrit. La question initiale indiquait l'espoir d'automatiser le processus dans Automator; ce script serait un excellent point de départ pour cela (si sa fonction de droplet n'est pas déjà suffisante pour la tâche de conversion par lots indiquée).

Je ne sais pas depuis combien de temps ce script est disponible, mais sur mon système High Sierra, le fichier d'application contient les données de création 2012. Le script lui-même a un commentaire donnant une date 2009. Donc, je soupçonne que ça fait longtemps. J'aurais aimé le savoir il y a des années. J'avais l'habitude d'utiliser un widget de tableau de bord appelé "PNG Pong" pour cela, mais ce n'est plus disponible. J'ai appris l'existence du droplet dans un message publié sur le forum Adobe en 2010: Comment supprimer le profil de couleur d'une image | Adobe Community (bien que l'emplacement du script ait légèrement changé depuis 2010).

Tom Loredo
la source