## ICO (Windows Icon) file format plugin for Photoshop

Copyright 2002-2011 Toby Thain, toby@telegraphics.com.au

The plugin gives Photoshop the ability to directly Open and Save Windows icon (.ICO) and cursor (.CUR) files (saving .CUR files is supported by version 2.1 or later). Download the latest version here.

### Tested with:

- Photoshop on Mac:
  - Photoshop CS5 on Intel Macintosh (32/64 bit)
  - Photoshop CS3 & CS4 on 32-bit Intel and PowerPC Macintosh
  - Photoshop 3.0-7.0, CS, CS2 on PowerPC Macintosh (OS X, OS 9 and Classic)
  - Photoshop 4.0 / MacOS 8.0 on 68K Macintosh
- Windows: Photoshop 5.0 and any later version on Windows 98/NT, XP, Vista, and Windows 7
- Paint Shop Pro 9 (may not work correctly with earlier versions due to PSP plugin compatibility issues)
- Photoshop Elements (Mac US$79.99/Win US$89.99. Prices at time of writing)

### Free software - donation suggested

This program is free software licensed under the terms of the GNU General Public License. If you use this program and like it, please donate what you think it is worth (US$5 suggested):

The program is fully supported. Please contact the author with any bug reports, suggestions or comments.

### To install

1. 64-bit Windows (Vista/Windows 7):

- Restart before installing;
- put plugin in `C:\Program Files\Adobe\Photoshop \Plug-Ins\File Formats`.
- If you are running on a 64-bit Windows system and are launching the 64-bit version of Photoshop CS4 or CS5, download the 64-bit version of the plugin and put it in the Plug-Ins folder corresponding to 64-bit Photoshop (i.e., the one in "Program Files" not "Program Files (x86)").

2. Move the plugin into the "File Formats" folder inside your Photoshop Plugins folder:

- For Windows (32-bit), ICOFormat.8bi
- For Windows (64-bit), ICOFormat64.8bi
- For Mac OS X, ICOFormat.plugin (note that separate versions are provided for CS2, CS3/4 and CS5)
- For Mac OS X/Classic, icoformat
- For 68K MacOS, icoformat(68K)

3. If using Corel PSP Photo X2, put the plugin in `C:\Program Files\Corel\Corel Paint Shop Pro Photo X2\Languages\EN\PlugIns`
4. Quit and relaunch Photoshop, if it's already running.

### To use the plugin

- Use Photoshop's Open command (File menu) to open .ICO and .CUR files (which will now appear in the file browser)
- Use Photoshop's Save command to create .ICO and .CUR files.
- If saving .CUR, note that the cursor hotspot is defined by the ruler origin.

### Having trouble?

- If you are not sure if the plugin is correctly installed, look for "ICO (Windows Icon)" under Photoshop's "About Plug-in" menu (on Windows, look under "Help"; on OS X, under "Photoshop"). If it is not listed:
  - check you have downloaded the correct version (Windows/Mac)
  - is it in the "File Formats" subdirectory of Photoshop's "Plugins" folder?
  - have you quit and re-launched Photoshop?
- If you are running Vista and see the error "plugin entry point not found", try restarting and reinstalling, or see this post.
- The plugin is not a Filter or Import/Export plugin, so don't look for it there. It appears as a format option when Opening or Saving (eligible images).
- The ICO format does not allow images more than 256 pixels high or wide.
- Only Bitmap, Grey Scale, Indexed and RGB mode images, no more than 8 bits per channel, can be saved as ICO.
- Using Windows98? If you see messages about "Assertion Failed", please download this alternative build. (Thanks to Qwerky for pointing out this issue.)

### Features

- Reads and writes .ICO and .CUR files of 1,4,8 bits as Indexed mode images, and 16,24,32 bit as RGB mode
- If an input file contains multiple icons, a dialog box prompts to select one (indicates pixel size and colour depth of each contained icon).
- Files created by the plugin contain a single icon or cursor only. To create "suites" of icons of multiple sizes and/or colour depths, you can save them individually and combine with my icobundle command line utility.
- In version 1.7 and later, when saving an icon, it is possible to save in either standard ICO or PNG (Vista) compressed formats. The latter format is less compatible with other software and in particular should not be used for favicons.

### How to add a "favourites" icon (favicon, favicon.ico) to your web site

1. Create the file named favicon.ico with your desired graphic (as "standard ICO" format, if asked when saving by version 1.7)
2. Put it at the root level of your web site. (If you want Internet Explorer to recognise it, it must be 16x16 pixels in size.)
3. Put a tag as follows in the `<HEAD>...</HEAD>` section of your top-level HTML page (home page):

       <LINK REL="SHORTCUT ICON" HREF="favicon.ico">

### More references:

- What is Favicon.ico and How to Create a Favicon Icon for Your Website
- Mysteries Of The Favicon.ico - How To Create A Favicon In Photoshop
- Creating Your Own Favicon.ico Icon For IE5
- Favicon.ico - some brief notes
- Setting Up a Favorite Icon
- How to Add a Favicon to your Site (W3C) - technical
- How To Create And Install A favicon.ico (for Linux)
- Creating favicons with Adobe Photoshop and GoLive
- Using a favicon with Safari
- How to Add a Shortcut Icon to a Web Page (MSDN) - including troubleshooting information for IE
- Wikipedia
- Microsoft's guidelines for XP icons
- Microsoft's guidelines for Vista icons
- Hicksdesign's Icon reference page

...and many others.

### About transparency

The ICO format has an inherent 1 bit transparency mask (0 = opaque, 1 = transparent), called the AND bitmap.

- When reading or saving an RGB mode image in Photoshop 6.0 or later, layer transparency is used for the mask
- If the image is Indexed mode, and uses a "transparent index", this will be used to set the icon mask
- In other cases, the ICO mask is treated as an alpha channel (black = 0 = opaque, white = 255 = transparent)
- In PNG (Vista) format icons, the alpha channel is simply stored as part of the PNG. There is no separate mask.

### Saving indexed mode images

To ensure output files are as compact as possible, the smallest pixel depth is chosen sufficient to represent the colours used by the icon:

- RGB mode: no colour table
- Indexed/Grey Scale mode with >16 colours: 8 bits per pixel (up to 256 colours in colour table)
- Indexed/Grey Scale mode with >2 colours: 4 bits per pixel (up to 16 colours in colour table)
- Bitmap or Indexed/Grey Scale mode with 2 or fewer colours: 1 bit per pixel (up to 2 colours in colour table)

### A note on file sizes (Mac only)

Do not be alarmed if the Mac Finder shows an unexpectedly large file size for ICO files saved out of Photoshop. The ICO itself is stored in the data fork and is as small as possible (see above).

The Finder's size calculation is increased by Photoshop's prolific "metadata" in the resource fork, and does not truly reflect the size of the ICO data. (This is stored for all files saved out of Photoshop, regardless of format, and whether image thumbnails and previews are enabled in Preferences.) Finder's "K" size is also affected by the volume's minimum allocation size (often 4 or 8K depending on partition size).

On upload to a web site, the data fork alone is copied and the resource fork is stripped, and so this extra data (and Finder's padded figure) has no effect or relevance whatsoever. The "true" logical size of the ICO file can be confirmed in OS X's Terminal with `ls -l` in the icon's directory (or `files -x br` in MPW Shell).

### About 32-bit (Windows XP) icons

The plugin can create 32-bit icons with 8-bit alpha transparency. This will occur in two cases:

1. in Photoshop 6.0 or later, saving a layered RGB image (i.e. not flattened)
2. in any version of Photoshop, saving a flat RGB image with 2 or more alpha channels.

In the first case, the layer transparency will be used as the ICO alpha. The 1-bit "AND mask" is taken from the first alpha channel, or if there is no available alpha channel, is derived from layer transparency.

In the second case, the first alpha channel is used to create the 1-bit "AND mask", and the second alpha channel becomes the 8-bit ICO alpha.

In both cases, the colour data is set to zero (black) where the icon is transparent. This should produce the desired result (complete transparency over the background).

### Still confused, or having trouble?

Don't hesitate to write to us.