1 Provenance, licensing, and resolution, Oh My!
3 Windows .ICO file format
4 ========================================================================
5 Windows icons come in many flavors: size, number of colors, transparency
8 The format of a single .ico image:
9 ----------------------------------
10 Each image contains (among other things)
11 o an indication of its size in pixels
12 o an indication of the bit depth: 1,4,8,24,32
13 o [optional]: a palette, containing
14 * N entries, where N = 2 ^ bitdepth
15 * each entry contains a 32bit record, consisting
16 of an 8bit R, G, B triple and a reserve byte
17 (no, it's not used for alpha)
18 o an "AND" mask containing (most of) the pixel
19 data. This is an MxM raster (LL->LR, ... UL->UR)
20 of pixels, where each pixel is represented by
21 1, 4, 8, 24, or 32 bits. If 4 or 8, then the
22 values represent indices into the palette. If
23 1, the values represent black/white. If 24,
24 the values represent 24bit RGB data. If 32,
25 the values represent 24bit RGB data + 8bit alpha.
26 o [optional]: an "XOR" maks containing (more) pixel
27 data. This is an MxM raster (LL->LR, ... UL->UR)
28 of pixels, where each pixel is represent by
29 1 bit. This is used to create transparency (and
30 other effects) for 1, 4, 8, and 24 bit icons.
31 32bit icons have a built-in alpha channel in the
32 "AND" mask, which provides all the transparency
37 Applies to 1,4,8, and 24 bit icon images.
39 As mentioned above, each icon image actually contains two
40 MxM pixel data arrays. The first is called the "AND mask"
41 and uses N bits per pixel (where N is 1,4,8,24,or 32, although
42 32 bit icons use a different mechanism for transparency). The
43 second data array is called the "XOR mask" and is one bit per
46 The XOR mask allows a few fancy effects: transparency, but
47 also "inverting" the background. For transparency to work,
48 you have to choose one of your 16 (or 256, or 16M) colors
49 as the "transparent" color, and then make sure the XOR mask
50 has 1's everywhere the transparent color is used in the AND
51 mask, and 0's everywhere else.
52 For all the nitty-gritty, see
53 http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnargdi/html/msdn_transblt.asp
54 By setting up places in the image where the XOR mask has 1's,
55 but the transparent color is not used in the AND mask at that
56 location, you get color-inversion at those locations.
58 Most icon editors simplify this process: you don't deal with
59 the XOR mask directly. Instead, you pick a color to be the
60 "transparent" one, and the editor figures out how to construct
61 the XOR mask from that. (Thus, color-inversion effects are
62 hard to achieve with most icon editors).
64 The point is this: you get N colors (where N=2 ^ bitdepth, so
65 16 for 4bit, 256 for 8bit, 16M for 24bit) and NO transparency,
66 or you get N-1 colors and transparency.
68 Main icon format types:
69 -----------------------
70 16 color: icons which contain only 16 colors
71 chosen from a specific palette (not
72 just ANY 16 colors). This palette
82 192 192 192 light grey
91 Additionally, one of these 16 colors
92 can be designated the "transparent"
93 color, given 15 "real" colors and
96 "1-bit" transparency means no alpha,
99 256color: icons which contain only 256 colors
100 the palette can specify 256 unique
101 colors chosen from the universe of
102 16M 24bit RGB values. Many 256color
103 icons use a standard palette (the
104 so-called web-safe 216, plus 40 others
107 Again, one of these 256 colors can be
108 designated the "transparent" color.
109 Windows XP style guidelines say that
110 magenta (#ff00ff) should be used for
113 "1-bit" transparency means no alpha,
114 and no anti-aliasing.
116 24bit : 16M colors, but you have to give up
117 one of them if you want transparency.
118 No alpha, no anti-aliasing.
120 32bit : 16M colors, with full 8bit alpha
121 support and anti-aliasing.
125 16x16 : used on the TaskBar
126 24x24 : uncommon. used on the left half of
127 the Start Menu in Windows XP.
128 32x32 : default icon size for desktop icons
129 48x48 : DisplayProperties->Appearance->Advanced,
130 Item=Icon, set size. Not often used.
131 64x64 : New icon size for Vista.
132 256x256 : New icon size for Vista. Stored in compressed
133 PNG format within the .ico file; completely
134 violates all the rules described above.
136 Icons in this package:
137 ========================================================================
138 Provenance, licensing, and resolution information.
141 ==================================================
145 Provenance : setup module on cygwin-apps repository
146 cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/cygwin-apps co setup
147 subdir: setup/cygwin.ico
154 ==================================================
161 Author : Charles Wilson
162 Provenance: cygutils module on cygwin-apps repository
163 cvs -d:pserver:anoncvs@sources.redhat.com:/cvs/cygwin-apps co cygutils
164 subdir: cygutils/src/cygicons/
165 Comments : simple derived works, derived from cygwin.ico
171 ==================================================
173 License : GPL (assumed)
175 Provenance: posted to cygwin mailing list
176 http://cygwin.com/ml/cygwin/2004-10/msg00549.html
177 Comments : was posted with the express hope that it
178 be incorporated into the setup.exe source
179 code, which would require GPL. Note that
180 this version has been modified from the
181 original, 32bit-only contribution: I added
182 256color and 16color versions.
194 ==================================================
196 License : Public Domain (assumed)
197 Author : August Mayer
198 Provenance: posted to cygwin mailing list
199 http://cygwin.com/ml/cygwin/2001-07/msg01099.html
200 Comments : While I'm not a graphic designer or the like,
201 I have created a slightly improved version of
202 the Cygwin icon. Enjoy! -- A. Mayer
208 ==================================================
210 License : Public Domain (assumed)
211 Author : August Mayer
212 Provenance: posted to cygwin mailing list
213 http://cygwin.com/ml/cygwin/2001-07/msg01151.html
214 Comments : Similar to cygwing.ico, but with better anti-aliasing
220 ==================================================
224 Provenance: submitted to kde-look.org
225 http://www.kde-look.org/content/show.php?content=36393
248 ==================================================
250 License : CC-BY-SA 3.0
251 Author : Charles Wilson
252 Provenance: derived from public domain, Michal Pecyna
253 http://openclipart.org/media/files/TheStructorr/1751
271 <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/3.0/us/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/StillImage" property="dc:title" rel="dc:type">hippo.ico</span> by <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Charles Wilson</span> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-Share Alike 3.0 United States License</a>.<br />Based on a work at <a xmlns:dc="http://purl.org/dc/elements/1.1/" href=" http://openclipart.org/media/files/TheStructorr/1751" rel="dc:source"> http://openclipart.org/media/files/TheStructorr/1751</a>.