Perché l'impostazione immagine come propria icona con sorsi risultato un'icona offuscata? Esistono alternative?
-
22-10-2019 - |
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:
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:
-
?
- 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.
- È
sips
rotto? Perché come? Può essere fissato; Come? (O è il Finder? O qualcos'altro?)
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)