Warum führt das Festlegen eines Bildes als eigenes Symbol mit Schlucken zu einem unscharfen Symbol? Gibt es Alternativen?

Ich habe Symbole mit dem in einer anderen Frage beschriebenen Verfahren erfolgreich geändert: Programmgesteuertes Ändern oder Festlegen eines Datei- oder Ordnersymbols. Entweder ist mein sips(oder Finder) danach kaputt gegangen oder ich habe gerade zum ersten Mal hineingezoomt (es scheint, dass das Symbol von ≈ 100 x 100 nach unten scharf ist), aber das erstellte Symbol sips -i image.pngist sowieso verschwommen / verpixelt:

verschwommenes Symbol

Was ich vor der Unschärfe gemacht habe:

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

Also sind FIN-2 und FIN-3 gleich. FIN-2 ist eine 512x512 PNG-Datei

Außerdem: Die Verwendung von sipsbricht alle weiteren Versuche ab, wenn versucht wird, ein benutzerdefiniertes Symbol zu setzen, selbst mit einer beliebigen GUI-Methode und mit einer beliebigen Datei in einem beliebigen Ordner .

Die einzige Lösung besteht darin, den Finder zu löschen ~/Library/Caches/com.apple.finder/und neu zu starten. Dann funktioniert das Ändern des Symbols über die GUI (Drag & Drop, Copy & Paste) normal mit jeder Datei.


Zwei Hauptfragen – und die Beantwortung einer der beiden löst das Problem wahrscheinlich nahe genug für mich:

  1. Wie kann ich ein Bild programmgesteuert als Symbol festlegen, ohne dabei sips -i(= ) zu verwenden? sips --addIcon(Weitere Informationen finden Sie in der anderen Frage .)
    • Shell (bash) oder AppleScript wird bevorzugt
    • Ich könnte das PNG bei Bedarf zB in ICNS umwandeln.
  2. Ist sipskaputt? Warum wie? Kann es repariert werden; Wie? (Oder ist es der Finder? Oder etwas anderes?)

Antworten (2)

Ich glaube, ich habe einen Workaround gefunden!

Installieren Sie zunächst das osxutilsBundle , das etwas veraltet ist (2005), aber trotzdem funktioniert. (siehe die osxutils-Inhalte und Manpages )

Bereiten Sie das PNG für ICNS vor † – ironischerweise können Sie sips verwenden . Verwenden Sie dann seticonaus dem osxutilsBundle, 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 Cist nicht erforderlich.


†: Die Verwendung eines PNG als Quelldatei für seticonändert das Symbol in ein generisches PNG-Symbol, auch mit -dOption. Außerdem seticon FIN.icns FIN.pngwird das Symbol durch Verwenden von in ein generisches ICNS-Symbol geändert. (Konsultieren Sie die Manpages von seticon )

‡: NB: Die Quelldatei muss quadratisch sein und mögliche Seitenlängen sind: 16, 32, 48, 128, 256 und 512.

Seltsamerweise scheint die beste Lösung zu sein, nicht Apples eigene Tools zu verwenden, sondern den Python-Code, da er 3 Vorteile hat, die nicht eingeschränkt werden durch:

  • Auflösung der Ausgabedatei
    (funktioniert bis 1024x1024)
  • Eingabedateiformat
    (versucht mit ICNS und PNG)
  • Berechtigungen zum Installieren
    (als Funktion definieren)
Willkommen bei Ask Different! Ich würde empfehlen, sich diese Antwort auf eine ähnliche Frage anzusehen , die vorinstallierte Dienstprogramme verwendet, aber Funktionen unterstützt, die von früheren Apps nicht unterstützt werden. Ich bin mir nicht sicher, warum es in diesem Beispiel verschwommen ist.
Vielleicht bin ich ziemlich neu auf dieser Unterseite, aber nicht im Thema, schau mal bei stackoverflow.com/a/31150333/1535581 . Auf welche Funktionen beziehst du dich? Es ist verschwommen, weil es sips -iderzeit auf eine Auflösung von 256 x 256 Pixel beschränkt zu sein scheint.