change application icon

I would like to thank Chris Ward (@tenzerothree, http://tenzerothree.com/) for
working on the art for these icons and bringing some eye candy to the project.

The PSDs made by Chris are available on our Dropbox [1], along with the exports
I made to create OSX and Windows icons. The PSDs are almost completly vector
and all the resolutions look really similar, except the 16px favicon which was
handcrafted to look better and more recognizeable on the smaller pixel budget.

For Mac OS X the icons were created using iconutils on the PNGs iconsets
exported from the PSDs. These even support retina resolutions (except 512@2x).

For Windows the .ico file was created with imagemagick. The included images
are 16px, 24px, 32px, 48px 64px, 256px. These are the resolutions listed on
MSDN for supporting Windows XP [2] and Windows versions based on Aero [3].
Only 32bit PNGs were used since it is 2013.

For Linux nothing changed yet, even though @wm4 talked about using the PNGs
directly there. This will probably be dealt with in a later commit.

  [1]: https://www.dropbox.com/sh/yelfoj9tbft7o06/A8vOT6JKaG
  [2]: http://msdn.microsoft.com/en-us/library/ms997636.aspx
  [3]: http://msdn.microsoft.com/en-us/library/aa511280.aspx
This commit is contained in:
Stefano Pigozzi 2013-08-29 21:26:15 +02:00
parent 4d62b90f88
commit 303096bcb2
9 changed files with 3 additions and 623 deletions

View File

@ -35,7 +35,7 @@
<string>wma</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>audio.icns</string>
<string>document.icns</string>
<key>CFBundleTypeName</key>
<string>Audio file</string>
<key>CFBundleTypeRole</key>
@ -122,7 +122,7 @@
<string>wmv</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>movie.icns</string>
<string>document.icns</string>
<key>CFBundleTypeName</key>
<string>Movie file</string>
<key>CFBundleTypeRole</key>
@ -157,7 +157,7 @@
<string>utf</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>subtitles.icns</string>
<string>document.icns</string>
<key>CFBundleTypeName</key>
<string>Subtitles file</string>
<key>CFBundleTypeRole</key>

View File

@ -1,64 +0,0 @@
#!/bin/sh
set -e
if [ $# -ne 2 ]; then
echo >&2 "Usage: $0 input.svg output.ico"
exit 1
fi
# For smooth rendering on high-DPI displays, the standard three app icon sizes
# (16x16, 32x32 and 48x48) have to be scaled to the four Windows DPI settings
# as in the table below:
# Small Regular Tiles
# 96 DPI (100%) 16x16 32x32 48x48
# 120 DPI (125%) 20x20 40x40 60x60
# 144 DPI (150%) 24x24 48x48 72x72
# 196 DPI (200%) 32x32 64x64 96x96
# Also, there should also be an extra large 256x256 icon and some low colour
# 8-bit and 4-bit variants, which are still used in Remote Desktop.
# Note: Windows Vista has a bug in its icon scaling that makes no sense.
# Instead of following the DPI setting, small icons are always a bit larger
# than they should be at 22x22, 26x26 and 36x36 for 120, 144 and 196 DPI. This
# script doesn't generate icons with those sizes, since computers with Vista
# and a high-DPI display are probably fairly rare these days.
temppng=".$(basename "$1" .svg)-temp.png"
inkscape --without-gui --export-png="$temppng" --export-dpi=72 \
--export-background-opacity=0 --export-width=512 --export-height=512 \
"$1" >/dev/null 2>&1
# Old versions of ImageMagick (like the one in Cygwin) use the wrong gamma when
# exporting icon files. To fix, add -gamma 2.2 after the input file.
convert png:"$temppng" -filter lanczos2 \
\( -clone 0 -resize 96x96 \) \
\( -clone 0 -resize 72x72 \) \
\( -clone 0 -resize 64x64 \) \
\( -clone 0 -resize 60x60 \) \
\( -clone 0 -resize 48x48 \) \
\( -clone 0 -resize 40x40 \) \
\( -clone 0 -resize 32x32 \) \
\( -clone 0 -resize 24x24 \) \
\( -clone 0 -resize 20x20 \) \
\( -clone 0 -resize 16x16 \) \
\( -clone 0 -resize 256x256 \) \
\( -clone 0 -resize 32x32 \( -clone 0 -alpha opaque -colors 255 \) \
\( -clone 0 -channel A -threshold 50% \) \
-delete 0 -compose CopyOpacity -composite -colors 256 \) \
\( -clone 0 -resize 16x16 \( -clone 0 -alpha opaque -colors 255 \) \
\( -clone 0 -channel A -threshold 50% \) \
-delete 0 -compose CopyOpacity -composite -colors 256 \) \
\( -clone 0 -resize 32x32 \( -clone 0 -alpha opaque -colors 15 \) \
\( -clone 0 -channel A -threshold 50% \) \
-delete 0 -compose CopyOpacity -composite -colors 16 \) \
\( -clone 0 -resize 16x16 \( -clone 0 -alpha opaque -colors 15 \) \
\( -clone 0 -channel A -threshold 50% \) \
-delete 0 -compose CopyOpacity -composite -colors 16 \) \
-delete 0 \
-define png:compression-level=9 -define png:include-chunk=none ico:"$2"
rm "$temppng"

View File

@ -1,556 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
id="svg2985"
version="1.1"
inkscape:version="0.48.2 r9819"
sodipodi:docname="icon-mplayer3.svg"
inkscape:export-filename="/Users/pigoz/Documents/mplayer-icons/compiled/icon-mplayer2.png"
inkscape:export-xdpi="85.699997"
inkscape:export-ydpi="85.699997"
enable-background="new">
<defs
id="defs2987">
<linearGradient
id="linearGradient5632">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop5634" />
<stop
style="stop-color:#646464;stop-opacity:1;"
offset="1"
id="stop5636" />
</linearGradient>
<linearGradient
id="linearGradient3979">
<stop
style="stop-color:#d2d2d2;stop-opacity:1;"
offset="0"
id="stop3981" />
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3983" />
</linearGradient>
<linearGradient
id="linearGradient3877">
<stop
style="stop-color:#3cc8ff;stop-opacity:1;"
offset="0"
id="stop3879" />
<stop
id="stop3885"
offset="1"
style="stop-color:#14b4ff;stop-opacity:0;" />
</linearGradient>
<linearGradient
id="linearGradient3857"
osb:paint="solid">
<stop
style="stop-color:#03062a;stop-opacity:1;"
offset="0"
id="stop3859" />
</linearGradient>
<linearGradient
id="linearGradient3943">
<stop
id="stop3772"
offset="0"
style="stop-color:#44c8fd;stop-opacity:1;" />
<stop
style="stop-color:#284aef;stop-opacity:1;"
offset="0.46829268"
id="stop3788" />
<stop
style="stop-color:#06082a;stop-opacity:1;"
offset="1"
id="stop3947" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3877"
id="radialGradient3929"
gradientUnits="userSpaceOnUse"
cx="256.71875"
cy="256.15625"
fx="256.71875"
fy="256.15625"
r="235"
gradientTransform="translate(6.6751888,0)" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3877"
id="radialGradient3932"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(6.6751888,0)"
cx="256.71875"
cy="256.15625"
fx="256.71875"
fy="256.15625"
r="235" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3979"
id="linearGradient3924"
x1="256.12192"
y1="491.25339"
x2="256.12192"
y2="11.186499"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3943"
id="radialGradient3943"
cx="227.08333"
cy="218.25"
fx="227.08333"
fy="218.25"
r="197.08333"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3877"
id="radialGradient3964"
gradientUnits="userSpaceOnUse"
cx="258.69565"
cy="381.56522"
fx="258.69565"
fy="381.56522"
r="169.56522" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3979-0"
id="linearGradient3985"
x1="259.45453"
y1="256.90909"
x2="259.45453"
y2="38.000004"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(0,2)" />
<linearGradient
id="linearGradient3979-0">
<stop
style="stop-color:#ffffff;stop-opacity:0.01960784;"
offset="0"
id="stop3981-1" />
<stop
style="stop-color:#ffffff;stop-opacity:0.86274511;"
offset="1"
id="stop3983-0" />
</linearGradient>
<linearGradient
y2="38.000004"
x2="259.45453"
y1="256.90909"
x1="259.45453"
gradientTransform="translate(0,2)"
gradientUnits="userSpaceOnUse"
id="linearGradient4907"
xlink:href="#linearGradient3979-0"
inkscape:collect="always" />
<filter
inkscape:collect="always"
id="filter5485">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="6.7826086"
id="feGaussianBlur5487" />
</filter>
<filter
inkscape:collect="always"
id="filter5501">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="3.3913043"
id="feGaussianBlur5503" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3943-7"
id="radialGradient3943-9"
cx="227.08333"
cy="218.25"
fx="227.08333"
fy="218.25"
r="197.08333"
gradientUnits="userSpaceOnUse" />
<linearGradient
id="linearGradient3943-7">
<stop
id="stop3772-1"
offset="0"
style="stop-color:#44c8fd;stop-opacity:1;" />
<stop
style="stop-color:#284aef;stop-opacity:1;"
offset="0.46829268"
id="stop3788-5" />
<stop
style="stop-color:#06082a;stop-opacity:1;"
offset="1"
id="stop3947-6" />
</linearGradient>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath5607">
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:0.74509804;stroke:none"
id="path5609"
sodipodi:cx="227.08333"
sodipodi:cy="218.25"
sodipodi:rx="197.08333"
sodipodi:ry="197.08333"
d="M 424.16666,218.25 A 197.08333,197.08333 0 1 1 30,218.25 a 197.08333,197.08333 0 1 1 394.16666,0 z"
transform="matrix(1.2962957,0,0,1.2962957,-37.866811,203.33677)"
mask="none" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath5611">
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:0.74509804;stroke:none"
id="path5613"
sodipodi:cx="227.08333"
sodipodi:cy="218.25"
sodipodi:rx="197.08333"
sodipodi:ry="197.08333"
d="M 424.16666,218.25 A 197.08333,197.08333 0 1 1 30,218.25 a 197.08333,197.08333 0 1 1 394.16666,0 z"
transform="matrix(0.91114848,0,0,0.91114848,50.372646,143.15146)"
mask="none" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5632"
id="linearGradient5657"
gradientUnits="userSpaceOnUse"
x1="280.81955"
y1="224.967"
x2="280.81955"
y2="438.65695"
gradientTransform="translate(0,2)" />
<filter
inkscape:collect="always"
id="filter5667">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="0.32939063"
id="feGaussianBlur5669" />
</filter>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5632-0"
id="linearGradient5657-3"
gradientUnits="userSpaceOnUse"
x1="280.81955"
y1="224.967"
x2="280.81955"
y2="438.65695"
gradientTransform="translate(0,2)" />
<linearGradient
id="linearGradient5632-0">
<stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop5634-4" />
<stop
style="stop-color:#646464;stop-opacity:1;"
offset="1"
id="stop5636-0" />
</linearGradient>
<filter
inkscape:collect="always"
id="filter5717">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="4.2775091"
id="feGaussianBlur5719" />
</filter>
<filter
inkscape:collect="always"
id="filter5729">
<feBlend
inkscape:collect="always"
mode="darken"
in2="BackgroundImage"
id="feBlend5731" />
</filter>
<filter
inkscape:collect="always"
id="filter5737">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="2.9374501"
id="feGaussianBlur5739" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3877"
id="radialGradient5741"
gradientUnits="userSpaceOnUse"
cx="258.69565"
cy="381.56522"
fx="258.69565"
fy="381.56522"
r="169.56522" />
<filter
inkscape:collect="always"
id="filter5784">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="10.173913"
id="feGaussianBlur5786" />
</filter>
<filter
inkscape:collect="always"
id="filter5792">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="8.4782608"
id="feGaussianBlur5794" />
</filter>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3877"
id="radialGradient5796"
gradientUnits="userSpaceOnUse"
cx="258.69565"
cy="381.56522"
fx="258.69565"
fy="381.56522"
r="169.56522" />
<filter
inkscape:collect="always"
id="filter5845"
x="-0.16900845"
width="1.3380169"
y="-0.20256461"
height="1.4051292">
<feGaussianBlur
inkscape:collect="always"
stdDeviation="21.923266"
id="feGaussianBlur5847" />
</filter>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.59"
inkscape:cx="247.81648"
inkscape:cy="251.19615"
inkscape:current-layer="layer9"
showgrid="true"
inkscape:document-units="px"
inkscape:grid-bbox="true"
inkscape:window-width="1629"
inkscape:window-height="1006"
inkscape:window-x="47"
inkscape:window-y="0"
inkscape:window-maximized="0" />
<metadata
id="metadata2990">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="shadow"
id="g4931"
inkscape:groupmode="layer"
style="filter:url(#filter5729)"
sodipodi:insensitive="true">
<path
transform="matrix(1.0008681,0,0,1.0008681,-0.32354214,1.8790597)"
d="m 500.88873,255.89879 a 244.78751,244.78751 0 1 1 -489.575009,0 244.78751,244.78751 0 1 1 489.575009,0 z"
sodipodi:ry="244.78751"
sodipodi:rx="244.78751"
sodipodi:cy="255.89879"
sodipodi:cx="256.10123"
id="path4933"
style="fill:#000000;fill-opacity:0.74509804;stroke:none;filter:url(#filter5737)"
sodipodi:type="arc" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="chrome"
sodipodi:insensitive="true">
<path
sodipodi:type="arc"
style="fill:url(#linearGradient3924);fill-opacity:1;stroke:none"
id="path3148"
sodipodi:cx="256.10123"
sodipodi:cy="255.89879"
sodipodi:rx="244.78751"
sodipodi:ry="244.78751"
d="m 500.88873,255.89879 a 244.78751,244.78751 0 1 1 -489.575009,0 244.78751,244.78751 0 1 1 489.575009,0 z"
transform="matrix(1.0008681,0,0,1.0008681,-0.32354214,-0.12094033)" />
</g>
<g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="base-glass"
sodipodi:insensitive="true">
<path
sodipodi:type="arc"
style="fill:url(#radialGradient3943);fill-opacity:1;stroke:none"
id="path3927"
sodipodi:cx="227.08333"
sodipodi:cy="218.25"
sodipodi:rx="197.08333"
sodipodi:ry="197.08333"
d="M 424.16666,218.25 A 197.08333,197.08333 0 1 1 30,218.25 a 197.08333,197.08333 0 1 1 394.16666,0 z"
transform="matrix(1.1467231,0,0,1.1467231,-4.401693,5.727699)"
mask="none" />
</g>
<g
inkscape:groupmode="layer"
id="layer4"
inkscape:label="glows"
sodipodi:insensitive="true"
style="display:inline">
<path
sodipodi:type="arc"
style="fill:url(#radialGradient5741);fill-opacity:1;stroke:none;filter:url(#filter5501)"
id="path3946"
sodipodi:cx="258.69565"
sodipodi:cy="381.56522"
sodipodi:rx="169.56522"
sodipodi:ry="169.56522"
d="m 428.26086,381.56522 a 169.56522,169.56522 0 1 1 -339.130428,0 169.56522,169.56522 0 1 1 339.130428,0 z"
transform="matrix(1.2585469,0,0,1.2585469,-67.79803,-174.43515)"
clip-path="url(#clipPath5611)" />
<path
transform="matrix(0.88461539,0,0,0.88461539,29.095871,-174.14716)"
d="m 428.26086,381.56522 a 169.56522,169.56522 0 1 1 -339.130428,0 169.56522,169.56522 0 1 1 339.130428,0 z"
sodipodi:ry="169.56522"
sodipodi:rx="169.56522"
sodipodi:cy="381.56522"
sodipodi:cx="258.69565"
id="path3962"
style="fill:url(#radialGradient3964);fill-opacity:1;stroke:none;filter:url(#filter5485)"
sodipodi:type="arc"
clip-path="url(#clipPath5607)" />
</g>
<g
inkscape:label="glows2"
id="g5762"
inkscape:groupmode="layer"
style="opacity:0.73999999;display:inline"
sodipodi:insensitive="true">
<path
clip-path="url(#clipPath5611)"
transform="matrix(1.2585469,0,0,1.2585469,-67.79803,-174.43515)"
d="m 428.26086,381.56522 a 169.56522,169.56522 0 1 1 -339.130428,0 169.56522,169.56522 0 1 1 339.130428,0 z"
sodipodi:ry="169.56522"
sodipodi:rx="169.56522"
sodipodi:cy="381.56522"
sodipodi:cx="258.69565"
id="path5764"
style="fill:url(#radialGradient5796);fill-opacity:1;stroke:none;filter:url(#filter5792)"
sodipodi:type="arc" />
<path
clip-path="url(#clipPath5607)"
sodipodi:type="arc"
style="fill:url(#radialGradient3964);fill-opacity:1;stroke:none;filter:url(#filter5784)"
id="path5766"
sodipodi:cx="258.69565"
sodipodi:cy="381.56522"
sodipodi:rx="169.56522"
sodipodi:ry="169.56522"
d="m 428.26086,381.56522 a 169.56522,169.56522 0 1 1 -339.130428,0 169.56522,169.56522 0 1 1 339.130428,0 z"
transform="matrix(0.88461539,0,0,0.88461539,29.095871,-174.14716)" />
</g>
<g
inkscape:groupmode="layer"
id="layer9"
inkscape:label="glow3"
style="opacity:0.7">
<path
sodipodi:type="arc"
style="fill:#23c8ff;fill-opacity:1;stroke:none;filter:url(#filter5845)"
id="path5799"
sodipodi:cx="260.0629"
sodipodi:cy="345.01886"
sodipodi:rx="155.66037"
sodipodi:ry="129.87421"
d="m 415.72327,345.01886 a 155.66037,129.87421 0 1 1 -311.32074,0 155.66037,129.87421 0 1 1 311.32074,0 z"
transform="matrix(0.92027607,0,0,0.82232826,17.588582,32.614052)"
inkscape:export-filename="/Users/pigoz/Documents/mplayer-icons/compiled/path5799.png"
inkscape:export-xdpi="85.699997"
inkscape:export-ydpi="85.699997" />
</g>
<g
inkscape:groupmode="layer"
id="layer8"
inkscape:label="gloss-clipping"
sodipodi:insensitive="true" />
<g
inkscape:groupmode="layer"
id="layer6"
inkscape:label="play"
sodipodi:insensitive="true">
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;filter:url(#filter5717)"
inkscape:transform-center-x="-31.26597"
inkscape:transform-center-y="-0.032805761"
d="m 190.37028,382.72523 0,-120.00058 0,-120.0006 93.87484,60.04949 93.87489,60.04951 -93.87489,59.95109 z"
id="path3999-1"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc"
inkscape:export-filename="/Users/pigoz/Documents/icon-mplayer.png"
inkscape:export-xdpi="85.699997"
inkscape:export-ydpi="85.699997" />
<path
style="fill:url(#linearGradient5657);fill-opacity:1;stroke:#000000;stroke-width:6;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:transform-center-x="-29.755544"
inkscape:transform-center-y="-0.03121957"
d="m 194.68911,375.82668 0,-114.20348 0,-114.2035 89.33985,57.14856 89.33989,57.14858 -89.33989,57.05492 z"
id="path3999"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccc"
inkscape:export-filename="/Users/pigoz/Documents/icon-mplayer.png"
inkscape:export-xdpi="85.699997"
inkscape:export-ydpi="85.699997" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="white-gloss"
style="opacity:0.9137931;display:inline"
sodipodi:insensitive="true">
<path
style="fill:url(#linearGradient4907);fill-opacity:1;stroke:none;display:inline;filter:url(#filter5667)"
d="M 256,42.90625 C 142.67988,42.90625 49.723058,129.38336 40.3125,239.5 98.19077,257.96934 164.46733,270.1875 258,270.1875 c 96.86848,0 137.8965,-5.8873 213.8125,-29.4375 C 463.00354,130.03648 369.74992,42.90625 256,42.90625 z"
id="path3950"
inkscape:connector-curvature="0"
sodipodi:nodetypes="scscs"
inkscape:export-filename="/Users/pigoz/Documents/icon-mplayer.png"
inkscape:export-xdpi="85.699997"
inkscape:export-ydpi="85.699997"
transform="matrix(0.99524152,0,0,0.99524152,0.95307007,-2.3236889)" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 264 KiB