En s'appuyant sur la réponse de cksum, si vous pouvez obtenir les images de masque, de superposition et d'ombre à une résolution suffisamment élevée (les images @2x
ne font toujours que 140px carrés,) et que vous êtes à l'aise avec la ligne de commande/le scripting shell, vous pouvez utiliser ImageMagick, un bon processeur d'image en ligne de commande, pour réellement masquer et composer l'icône.
Une fois que vous avez installé ImageMagick (Ils ont des instructions d'installation ici) vous devriez être capable de traiter votre image avec le masque, la superposition et l'ombre :
convert VotreImage.png superposition.png -composite VotreImage_superposition.png
convert VotreImage_superposition.png masque.png -alpha off -compose CopyOpacity -composite VotreImage2.png
convert ombre.png VotreImage2.png -composite VotreImage_plus_grande.png
convert VotreImage_plus_grande.png -geometry 512 Icon512.png
convert VotreImage_plus_grande.png -geometry 256 Icon256.png
Cela suppose que Votre_Image est grand et carré (1024x1024) et que les fichiers mask.png, superposition.png et ombre.png sont de la même taille.
Idéalement, vous ne devriez pas simplement rééchantillonner l'icône la plus grande pour obtenir les plus petites versions, mais vous pourriez plutôt utiliser un logiciel normal de création d'icônes (par ex. IconBuilder) et l'utiliser pour créer VotreImage à chaque taille, puis faire ce qui précède pour chacune individuellement.
En ce qui concerne le redimensionnement des images de masque, superposition et ombre à la bonne taille, ma meilleure recommandation serait de les agrandir puis de les reconstruire (c'est-à-dire de dessiner un nouveau rectangle arrondi et des dégradés) en pleine résolution avec Photoshop ou GIMP.
Une fois que vous avez l'image à chaque résolution, vous pouvez la jeter dans l'Icon Composer d'Apple (dans les SDK iOS/Mac) pour créer le fichier .icns
Ce n'est pas la solution la plus facile, mais elle vous offre la flexibilité de spécifier le masque exact et d'autres effets ainsi que celui de la ligne de commande.