Por que definir a imagem como seu próprio ícone com goles resulta em um ícone desfocado? Existem alternativas?

5

Alterei os ícones com êxito usando o procedimento descrito em outra pergunta: Alterando ou configurando um ícone de arquivo ou pasta programaticamente. O meu sips(ou o Finder) foi quebrado depois ou eu apenas ampliei o zoom pela primeira vez (parece que o ícone é nítido de 100x100 para baixo), mas, de qualquer forma, o ícone que sips -i image.pngcria é embaçado / pixelizado:

ícone embaçado

O que eu fiz antes da emburração:

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

Portanto, FIN-2 e FIN-3 são os mesmos. FIN-2 é um arquivo PNG de 512x512

Além disso: o uso de sipsquebra todas as tentativas adicionais ao tentar definir um ícone personalizado, mesmo com qualquer método da GUI e com qualquer arquivo em qualquer pasta .

A única solução é excluir ~/Library/Caches/com.apple.finder/e reiniciar o Finder. A alteração do ícone via GUI (arrastar e soltar, copiar e colar) funciona normalmente com qualquer arquivo.


Duas perguntas principais - e responder a uma delas provavelmente resolve o problema suficientemente próximo para mim:

  1. Como posso definir uma imagem como um ícone programaticamente sem usar sips -i(= sips --addIcon) no processo? (novamente, consulte a outra pergunta para obter informações mais abrangentes)
    • Shell (bash) ou AppleScript é o preferido
    • Eu poderia converter o PNG para, por exemplo, ICNS, se necessário.
  2. Está sipsquebrado? Porque como? Pode ser consertado; como? (Ou é o Finder? Ou algo mais?)
Jari Keinänen
fonte

Respostas:

1

Acho que encontrei uma solução alternativa!

Primeiro, instale o osxutilspacote que é um pouco datado (2005), mas funciona. (veja o conteúdo e os manuais do osxutils )

Prepare o PNG para o ICNS † - ironicamente, você pode usar sips . Em seguida, use seticono osxutilspacote para alterar o ícone:

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

O seticontambém altera os atributos do arquivo, ie. usar SetFile -a Cnão é necessário.


†: Usar um PNG como arquivo de origem para seticonalterar o ícone para um ícone PNG genérico, mesmo com a -dopção. Além disso, o uso seticon FIN.icns FIN.pngaltera o ícone para um ícone ICNS genérico. (Consulte as páginas de manual do seticon )

‡: NB: o arquivo de origem deve ser um quadrado e os possíveis comprimentos laterais são: 16, 32, 48, 128, 256 e 512.

Jari Keinänen
fonte
0

Curiosamente, a melhor solução parece não ser usar as próprias ferramentas da Apple, mas o código Python, porque ele tem três vantagens, não sendo limitado por:

  • resolução de arquivo de saída
    (funciona até 1024x1024)
  • formato de arquivo de entrada
    (tentado com ICNS e PNG)
  • permissões para instalar
    (defini-lo como uma função)
dardo82
fonte
Bem-vindo ao perguntar diferente! Eu recomendo dar uma olhada nesta resposta para uma pergunta semelhante que usa utilitários pré-instalados, mas suporta recursos não suportados por aplicativos anteriores. Não sei por que está embaçado neste exemplo.
JMY1000 #
Talvez eu seja bastante novo neste subsite, mas não no tópico, dê uma olhada em stackoverflow.com/a/31150333/1535581 . Quais são os recursos aos quais você se refere? É embaçado porque usa o sips -ique parece estar limitado a uma resolução de 256x256 pixels no momento.
Dardo82 22/05