Warum Bild als eigenes Symbol mit SIPS -Ergebnis ein verschwommenes Symbol festlegen? Gibt es Alternativen?
-
22-10-2019 - |
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:
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:
- 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.
- Ist
sips
gebrochen? Warum wie? Kann es repariert werden; wie? (Oder ist es der Finder? Oder etwas anderes?)
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)