Warum Bild als eigenes Symbol mit SIPS -Ergebnis ein verschwommenes Symbol festlegen? Gibt es Alternativen?

apple.stackexchange https://apple.stackexchange.com/questions/10666

Frage

Ich habe die Symbole mit dem in einer anderen Frage beschriebenen Verfahren erfolgreich geändert: Ändern oder Festlegen eines Datei- oder Ordnersymbols programmatisch. Entweder mein sips (oder Finder) wurde danach gebrochen, oder ich habe nur zum ersten Mal eingefärbt (es scheint, dass das Symbol von ~ 100 x 100 unten scharf ist), aber trotzdem das Symbol das sips -i image.png Erstellt ist verschwommen/pixeliert:

blurry icon

Was ich vor der Unschärfe getan habe:

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

FIN-2 und Fin-3 sind also gleich. FIN-2 ist ein 512x512 PNG-Datei

Außerdem: Verwendung sips geht kaputt alle Weitere Versuche beim Versuch, ein benutzerdefiniertes Symbol zu setzen, auch mit Jede GUI -Methode und mit jede Datei in Jeder Ordner.

Nur Heilung ist zu löschen ~/Library/Caches/com.apple.finder/ und Finder neu starten. Das Ändern des Symbols über GUI (Drag & Drop, Kopieren & Einfügen) funktioniert normal mit jeder Datei.


Zwei Hauptfragen - und die Beantwortung von beiden löst das Problem wahrscheinlich nahe genug für mich:

  1. Wie kann ich ein Bild als Symbol programmatisch festlegen, ohne zu verwenden? sips -i (= sips --addIcon) dabei? (Verweisen Sie erneut auf die andere Frage Für umfassendere Informationen)
    • Shell (Bash) oder AppleScript wird bevorzugt
    • Ich könnte das PNG bei Bedarf in EG -ICNs konvertieren.
  2. Ist sips gebrochen? Warum wie? Kann es repariert werden; wie? (Oder ist es der Finder? Oder etwas anderes?)
War es hilfreich?

Lösung

Ich glaube, ich habe eine Problemumgehung gefunden!

Zunächst einmal installieren osxutils bündeln Das ist ein bisschen veraltet (2005), aber dennoch funktioniert es. (Siehe Osxutils Inhalt und Mannseiten)

Bereiten Sie das PNG auf ICNs vor- Ironischerweise können Sie verwenden sips. Dann benutze seticon von dem osxutils Bündel, um das Symbol zu ändern:

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

Das seticon Ändert auch die Attribute der Datei, dh. Verwendung SetFile -a C ist nicht notwendig.


†: Verwenden eines PNG als Quelldatei für seticon ändert das Symbol in ein generisches PNG -Symbol, auch mit -d Möglichkeit. Außerdem verwendet seticon FIN.icns FIN.png ändert das Symbol in ein generisches ICNS -Symbol. (Konsultieren Sie die Seticons Mannseiten)

‡: NB: Die Quelldatei muss Seien Sie ein quadratisches und mögliches Seitenlängen: 16, 32, 48, 128, 256 und 512.

Andere Tipps

Seltsamerweise scheint die beste Lösung nicht darin zu sein, die eigenen Werkzeuge von Apple zu verwenden, sondern aber Der Python -Code Weil es 3 Vorteile hat, die nicht begrenzt werden durch:

  • Ausgabedateiauflösung
    (Es funktioniert bis 1024x1024)
  • Eingabedateiformat
    (Proben mit ICNS und PNG)
  • Berechtigungen zu installieren
    (definieren Sie es als Funktion)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit apple.stackexchange
scroll top