Blu*_*lue 97 macos xcode cocoa icons iconutil
当我验证我的应用程序时,我收到此错误:
应用程序包不包含ICNS格式的图标,包含a
512x512和512x512@2x图像.
我用Img2icns应用程序制作icns图标,直到今天它始终正常工作.但现在我收到了这个错误,没有办法让它发挥作用.我试图将两个PNG文件放在一起(512x512和1024x1024)在Img2icns中,但我总是得到那个错误.我也尝试按照Apple的OS X人机界面指南中的说明进行操作,但是当我尝试制作图标集时,我收到此终端错误:
-bash:意外标记'newline'附近的语法错误
我对终端命令不是很好,所以也许我做错了.我写:
iconutil -c icns </Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset>
Run Code Online (Sandbox Code Playgroud)
如果有人能提供帮助,我将非常感激.谢谢,马西.
Aid*_*dan 255
这是一个脚本,用于将1024x1024 png(名为"Icon1024.png")转换为所需的icns文件.将它保存到png文件所在文件夹中名为"CreateICNS.src"的文件夹中,然后在"cd"终端中找到相同的文件夹并输入"source CreateICNS.src"来调用它:
mkdir MyIcon.iconset
sips -z 16 16 Icon1024.png --out MyIcon.iconset/icon_16x16.png
sips -z 32 32 Icon1024.png --out MyIcon.iconset/icon_16x16@2x.png
sips -z 32 32 Icon1024.png --out MyIcon.iconset/icon_32x32.png
sips -z 64 64 Icon1024.png --out MyIcon.iconset/icon_32x32@2x.png
sips -z 128 128 Icon1024.png --out MyIcon.iconset/icon_128x128.png
sips -z 256 256 Icon1024.png --out MyIcon.iconset/icon_128x128@2x.png
sips -z 256 256 Icon1024.png --out MyIcon.iconset/icon_256x256.png
sips -z 512 512 Icon1024.png --out MyIcon.iconset/icon_256x256@2x.png
sips -z 512 512 Icon1024.png --out MyIcon.iconset/icon_512x512.png
cp Icon1024.png MyIcon.iconset/icon_512x512@2x.png
iconutil -c icns MyIcon.iconset
rm -R MyIcon.iconset
Run Code Online (Sandbox Code Playgroud)
Ann*_*nne 58
查看以下说明(链接):
使用iconutil手动创建icns文件
该
iconutil命令行工具转换iconset文件夹部署就绪,高分辨率的ICNS文件.(您可以通过输入man iconutil终端找到此工具的完整文档.)使用此工具还会压缩生成的icns文件,因此您无需执行其他压缩.将一组图标转换为icns文件
在终端窗口中输入此命令:
iconutil -c icns <iconset filename>
<iconset filename>包含要转换为的图标集的文件夹的路径在哪里icns.iconset file除非您指定输出文件,否则输出将写入与其相同的位置:
iconutil -c icns -o <icon filename> <iconset filename>
换句话说,您需要替换<iconset filename>路径:
/Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset
Run Code Online (Sandbox Code Playgroud)
由于路径包含空格,因此您需要使用双引号,例如:
iconutil -c icns "/Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset"
Run Code Online (Sandbox Code Playgroud)
此命令应该正常工作.
Zek*_*eke 18
有一个命令行节点模块,它完成将PNG文件转换为iconset目录的所有工作:
npm install -g node-icns
nicns --in adventure-cat.png --out adventure-cat.icns
Run Code Online (Sandbox Code Playgroud)
Tra*_*oud 16
虽然使用各种脚本将高分辨率PNG图像转换为不同的低分辨率副本可能看起来很方便(而且确实如此),但是不应该忘记这种自动调整大小会渲染出明显不完美的图像.
分辨率越低,图标就越模糊!
相反,您应该始终以某种矢量格式请求徽标,例如在SVG设计师中.有了这个,您可以手动准备所有所需分辨率的完美PNG文件,然后制作一个.icns文件,这将使您的应用程序图标在每个屏幕上看起来都很漂亮,从手机到一些高端Retina显示屏的最新iMac电脑.
根据截至2016 年的最新Apple指南,您应准备以下PNG文件:
+---------------------+--------------------+--------------+
| filename | resolution, pixels | density, PPI |
+---------------------+--------------------+--------------+
| icon_16x16.png | 16x16 | 72 |
| icon_16x16@2x.png | 32x32 | 144 |
| icon_32x32.png | 32x32 | 72 |
| icon_32x32@2x.png | 64x64 | 144 |
| icon_128x128.png | 128x128 | 72 |
| icon_128x128@2x.png | 256x256 | 144 |
| icon_256x256.png | 256x256 | 72 |
| icon_256x256@2x.png | 512x512 | 144 |
| icon_512x512.png | 512x512 | 72 |
| icon_512x512@2x.png | 1024x1024 | 144 |
+---------------------+--------------------+--------------+
Run Code Online (Sandbox Code Playgroud)
准备完所有PNG文件后,将它们放入某个带.iconset扩展名的目录(Logos.iconset例如)并从终端执行:
iconutil --convert icns Logos.iconset
Run Code Online (Sandbox Code Playgroud)
如果在执行此命令后没有错误,那么所有文件都已正确准备,并且您将Logos.icns文件放在同一目录中,其中包含适用于您的应用程序的所有美丽清晰徽标,适用于2017年的任何现代屏幕.
Aid*_*dan 12
这些命令(在终端中输入)对我有用,可以将旧的icns文件转换为新格式:
cd Folder_With_Icns_File
iconutil -c iconset Your_Icon_Name.icns
rm Your_Icon_Name.icns
iconutil -c icns Your_Icon_Name.iconset
rm -R Your_Icon_Name.iconset
Run Code Online (Sandbox Code Playgroud)
-c不再支持iconutil 的参数.--convert改为使用:
cd Folder_With_Icns_File
iconutil --convert iconset Your_Icon_Name.icns
rm Your_Icon_Name.icns
iconutil --convert icns Your_Icon_Name.iconset
rm -R Your_Icon_Name.iconset
Run Code Online (Sandbox Code Playgroud)
小智 9
附加注释,当您创建.icns文件时,您需要使用前缀"icon_ " 重命名所有pic文件,否则,iconutil将失败并显示错误消息:".msset:error:无法生成ICNS." 这根本没有提供信息.
更多信息:http : //eon.codes/blog/2016/12/06/Creating-an-app-icon/
高山脉更新 iconutil现在对源 .png 大小更加严格。在跳转后的博客文章中详细介绍了这一点。??
我编写了一个bash脚本,用于从svg文件制作icns:
#!/usr/bin/env bash
sizes=(16 32 64 128 256 512)
largfile='icon_512x512@2x.png'
if [ ! -f "$largfile" ]; then
convert -background none -resize 1024x1024 "$1" "$largfile"
fi
for s in "${sizes[@]}"; do
echo $s
convert -background none -resize ${s}x${s} "$largfile" "icon_${s}x$s.png"
done
cp 'icon_32x32.png' 'icon_16x16@2x.png'
mv 'icon_64x64.png' 'icon_32x32@2x.png'
cp 'icon_256x256.png' 'icon_128x128@2x.png'
cp 'icon_512x512.png' 'icon_256x256@2x.png'
mkdir icon.iconset
mv icon_*x*.png icon.iconset
iconutil -c icns icon.iconset
Run Code Online (Sandbox Code Playgroud)
确保在mac上安装了librsvg支持的imagemagick:
brew install imagemagick --with-librsvg
Run Code Online (Sandbox Code Playgroud)
这个脚本对我很有帮助.
为了更彻底的处理,我创建了一个命令行工具(用Swift编写),用于生成AppIcon.appiconset正确的布局和格式:
https://github.com/kindlychung/genicon
与@Henry相同(上面的注释),但将PNG文件名作为参数并输出具有相同名称的ICNS。
注意: PNG文件名仅应具有1个指向单独扩展名的点,即xpto.png。
因此,将以下代码保存到png文件所在的文件夹中的“ CreateICNS.src”文件中。
代码:
IFS='.' read -ra ADDR <<< "$1"
ICONSET=${ADDR[0]}.iconset
mkdir $ICONSET
sips -z 16 16 $1 --out $ICONSET/icon_16x16.png
sips -z 32 32 $1 --out $ICONSET/icon_16x16@2x.png
sips -z 32 32 $1 --out $ICONSET/icon_32x32.png
sips -z 64 64 $1 --out $ICONSET/icon_32x32@2x.png
sips -z 128 128 $1 --out $ICONSET/icon_128x128.png
sips -z 256 256 $1 --out $ICONSET/icon_128x128@2x.png
sips -z 256 256 $1 --out $ICONSET/icon_256x256.png
sips -z 512 512 $1 --out $ICONSET/icon_256x256@2x.png
sips -z 512 512 $1 --out $ICONSET/icon_512x512.png
cp $1 $ICONSET/icon_512x512@2x.png
iconutil -c icns $ICONSET
rm -R $ICONSET
Run Code Online (Sandbox Code Playgroud)
如何使用 :
然后在终端中,“ cd”到相同的文件夹并键入:
source CreateICNS.src {PNG filename}
Run Code Online (Sandbox Code Playgroud)
其中{PNG filename}是您的PNG文件的名称,即xpto.png。
如果您的文件名为abc.png,则可以使用:
source CreateICNS.src abc.png
Run Code Online (Sandbox Code Playgroud)
我重构了@ Henry的剧本以使其看起来更好:
#!/bin/zsh
NAME=$(basename $1 .png); DIR="$NAME.iconset"
mkdir -pv $DIR
for m r in 'n' '' '((n+1))' '@2x'; do
for n in $(seq 4 9 | grep -v 6); do
p=$((2**$m)); q=$((2**$n))
OUT="$DIR/icon_${q}x${q}${r}.png"
sips -z $p $p $1 --out $OUT
done
done
iconutil -c icns $DIR
rm -frv $DIR
Run Code Online (Sandbox Code Playgroud)
更新
-c不再支持iconutil 的参数.-—convert改为使用:
#!/bin/zsh
NAME=$(basename $1 .png); DIR="$NAME.iconset"
mkdir -pv $DIR
for m r in 'n' '' '((n+1))' '@2x'; do
for n in $(seq 4 9 | grep -v 6); do
p=$((2**$m)); q=$((2**$n))
OUT="$DIR/icon_${q}x${q}${r}.png"
sips -z $p $p $1 --out $OUT
done
done
iconutil -—convert icns $DIR
rm -frv $DIR
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83528 次 |
| 最近记录: |