Perché l'impostazione immagine come propria icona con sorsi risultato un'icona offuscata? Esistono alternative?

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

Domanda

ho cambiato con successo le icone utilizzando la procedura descritta in un'altra domanda: Modifica o impostare l'icona di un file o una cartella a livello di codice. entrambi i casi il mio sips (o Finder) si è rotto dopo o ho appena ingrandita per la prima volta (sembra l'icona è tagliente da ˜100x100 verso il basso), ma , in ogni caso, l'icona che sips -i image.png crea è sfocata / pixel:

icona sfocata

Quello che ho fatto prima della blurrification:

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

Quindi, FIN-2 e FIN-3 sono gli stessi. FIN-2 è un 512x512 PNG-file

Inoltre: utilizzando pause sips tutti ulteriori tentativi quando si cerca di impostare un'icona personalizzata anche con qualsiasi metodo GUI e qualsiasi file qualsiasi cartella .

unica cura è eliminare ~/Library/Caches/com.apple.finder/ e riavviare Finder. Poi cambiando icona tramite GUI (drag & drop, copia & incolla) funziona normalmente con qualsiasi file.


Due domande-e principali rispondendo ad uno dei due probabilmente risolve il problema abbastanza vicino per me:

    ?
  1. Come faccio a impostare un'immagine come un'icona di programmazione senza usare sips -i (= sips --addIcon) nel processo (ancora una volta, fare riferimento al altra domanda per informazioni più completo)
    • Shell (bash) o AppleScript è preferito
    • I potrebbe convertire il PNG per esempio ICNS se necessario.
  2. È sips rotto? Perché come? Può essere fissato; Come? (O è il Finder? O qualcos'altro?)
È stato utile?

Soluzione

Credo di aver trovato una soluzione!

Prima di tutto, installare osxutils fascio che è un po 'datato (2005), ma comunque funziona. (Si veda la osxutils contenuti e le pagine man )

Preparare il PNG per ICNS -ironically è possibile utilizzare sips . Quindi utilizzare seticon dal fascio osxutils per modificare l'icona:

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

Il seticon cambia anche gli attributi del file, vale a dire. utilizzando SetFile -a C non è necessario.


†: Utilizzo di un PNG come file di origine per seticon cambia l'icona per l'icona di un PNG generica, anche con l'opzione -d. Inoltre, utilizzando seticon FIN.icns FIN.png cambia l'icona per l'icona di un ICNS generica. (Consultare il di SetIcon pagine man )

‡: NB: il file sorgente deve essere un quadrato e secondari possibili lunghezze sono:. 16, 32, 48, 128, 256 e 512

Altri suggerimenti

Stranamente la soluzione migliore sembra essere di non utilizzare propri strumenti di Apple, ma il codice Python perché ha 3 vantaggi non essere limitate da:

  • risoluzione del file di output
    (Funziona fino a 1024x1024)
  • file di input in formato
    (Provato con ICNS e PNG)
  • i permessi per installare
    (Definirlo come funzione)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a apple.stackexchange
scroll top