5 votes

Pourquoi le fait de définir l'image comme sa propre icône avec les sips donne une icône floue ? Existe-t-il des alternatives ?

J'ai réussi à changer les icônes en utilisant la procédure décrite dans une autre question : Modifier ou définir l'icône d'un fichier ou d'un dossier de manière programmatique. Soit mon sips (ou Finder) s'est cassé après coup ou j'ai juste zoomé pour la première fois (il semble que l'icône soit nette à partir de 100x100), mais, quoi qu'il en soit, l'icône qui sips -i image.png crée est floue/pixelée :

blurry icon

Ce que j'ai fait avant le floutage :

$ cp FIN-2.png FIN-3.png
$ sips -i FIN-3.png

Donc FIN-2 et FIN-3 sont les mêmes. FIN-2 est un fichier PNG de 512x512.

En outre : en utilisant sips rupture tous d'autres tentatives lorsque l'on essaie de définir une icône personnalisée, même avec toute méthode GUI et avec tout fichier en tout dossier .

Le seul remède est de supprimer ~/Library/Caches/com.apple.finder/ et redémarrez le Finder. Ensuite, le changement d'icône via l'interface graphique (glisser-déposer, copier-coller) fonctionne normalement avec n'importe quel fichier.


Deux questions principales - et répondre à l'une ou l'autre résout probablement le problème de manière assez proche pour moi :

  1. Comment puis-je définir une image en tant qu'icône de manière programmatique sans utiliser sips -i (= sips --addIcon ) dans le processus ? (une fois encore, reportez-vous à la autre question pour des informations plus complètes)
    • Shell (bash) ou AppleScript de préférence
    • Je pourrais convertir le PNG en ICNS, par exemple, si nécessaire.
  2. Est sips cassé ? Pourquoi/comment ? Peut-on le réparer ; comment ? (Ou est-ce le Finder ? ou autre chose ?)

1voto

Tundey Points 2145

Je crois que j'ai trouvé une solution de rechange !

Tout d'abord, installez osxutils paquet qui date un peu (2005) mais qui fonctionne néanmoins. (voir le Contenu et pages de manuel de osxutils )

Préparer le PNG à l'ICNS † -ironiquement, vous pouvez utiliser sips ‡ . Ensuite, utilisez seticon de la osxutils pour changer l'icône :

$ sips -s format icns FIN.png --out FIN.icns
$ seticon -d FIN.icns FIN.png

El seticon modifie également les attributs du fichier, c'est-à-dire que l'utilisation de l'option SetFile -a C n'est pas nécessaire.


† : Utilisation d'un PNG comme fichier source pour seticon change l'icône en une icône PNG générique, même avec -d option. En outre, l'utilisation de seticon FIN.icns FIN.png remplace l'icône par une icône générique de l'ICNS. (Consultez le Les pages de manuel de seticon )

‡ : NB : le fichier source doit soit un carré et les longueurs possibles des côtés sont : 16, 32, 48, 128, 256 et 512.

0voto

dardo82 Points 118

Étrangement, la meilleure solution semble être de ne pas utiliser les outils d'Apple mais de le code Python parce qu'il a 3 avantages à ne pas être limité par :

  • résolution du fichier de sortie
    (cela fonctionne jusqu'à 1024x1024)
  • format du fichier d'entrée
    (essayé avec ICNS et PNG)
  • les autorisations d'installer
    (le définir comme une fonction)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X