5 votos

¿Por qué al establecer la imagen como su propio icono con sips resulta un icono borroso? ¿Hay alguna alternativa?

He cambiado con éxito los iconos utilizando el procedimiento descrito en otra pregunta: Cambiar o establecer el icono de un archivo o carpeta mediante programación. O bien mi sips (o el Finder) se rompió después o simplemente hice el zoom por primera vez (parece que el icono es nítido de ≈100x100 hacia abajo), pero, de todos modos, el icono que sips -i image.png crea es borrosa/pixelada:

blurry icon

Lo que hice antes de la difuminación:

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

Así que FIN-2 y FIN-3 son lo mismo. FIN-2 es un archivo PNG de 512x512

Además: utilizando sips rompe todo más intentos al tratar de establecer un icono personalizado incluso con cualquier método GUI y con cualquier archivo en cualquier carpeta .

El único remedio es borrar ~/Library/Caches/com.apple.finder/ y reiniciar el Finder. Entonces, el cambio de icono a través de la GUI (arrastrar y soltar, copiar y pegar) funciona normalmente con cualquier archivo.


Hay dos preguntas principales, y la respuesta a cualquiera de ellas probablemente resuelva el problema lo suficiente para mí:

  1. ¿Cómo puedo establecer una imagen como icono mediante programación sin utilizar sips -i (= sips --addIcon ) en el proceso? (de nuevo, consulte el otra pregunta para una información más completa)
    • Se prefiere Shell (bash) o AppleScript
    • Podría convertir el PNG a, por ejemplo, ICNS si fuera necesario.
  2. Es sips ¿Rompido? ¿Por qué/cómo? ¿Se puede arreglar; cómo? (¿O es el Finder? ¿O algo más?)

1voto

Tundey Puntos 2145

Creo que he encontrado una solución.

En primer lugar, instale osxutils paquete que está un poco anticuado (2005) pero que, sin embargo, funciona. (ver el contenidos de osxutils y páginas man )

Preparar el PNG para el ICNS † -irónicamente puedes usar sips ‡ . A continuación, utilice seticon de la osxutils para cambiar el icono:

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

El seticon también cambia los atributos del archivo, es decir, usando SetFile -a C no es necesario.


†: El uso de un PNG como archivo de origen para seticon cambia el icono a un icono PNG genérico, incluso con -d opción. Además, el uso de seticon FIN.icns FIN.png cambia el icono a un icono genérico de ICNS. (Consulte el Páginas de manual de seticon )

‡: NB: el archivo de origen debe sea un cuadrado y las posibles longitudes de los lados sean 16, 32, 48, 128, 256 y 512.

0voto

Ganesh Puntos 16

Curiosamente la mejor solución parece ser no utilizar las herramientas propias de Apple sino el código Python porque tiene 3 ventajas al no estar limitado por:

  • resolución del archivo de salida
    (funciona hasta 1024x1024)
  • formato de archivo de entrada
    (probado con ICNS y PNG)
  • permisos para instalar
    (definirlo como una función)

0 votos

¡Bienvenido a Ask Different! Te recomiendo que eches un vistazo a esta respuesta a una pregunta similar que utiliza utilidades preinstaladas pero que admite funciones que no son compatibles con las aplicaciones anteriores. No estoy seguro de por qué está borroso en este ejemplo.

0 votos

Tal vez soy bastante nuevo en este sub-sitio, pero no el tema, echa un vistazo a stackoverflow.com/a/31150333/1535581 . ¿Cuáles son las características a las que se refiere? Es borrosa porque utiliza sips -i que parece estar limitado a una resolución de 256x256 píxeles por el momento.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X