views:

559

answers:

4

If you are running Windows with a higher DPI setting you will notice that most application icons on the desktop look terrible. Even high profile application icons such as Google Chrome look terrible while for example Firefox, Skype and MS Office icons look sharp:

alt text

(example)

I suspect that most icons look blurry because a lower resolution icon is scaled up rather than using a higher resolution icon.

I want to give my application a high quality icon and can't seem to convince Windows to use the higher resolution icon. I have created a multi-resolution icon with the free icon editor IcoFX. The icon is provided in 16x16, 24x24, 32x32,48x48, 128x128 and 256x256 (!) (all in 32 bit including alpha channel) yet Windows seems to use the 48x48 version of the icon on the desktop and scale it up which looks terrible. (I am using Windows 7 - 64 bit - the icon is placed by means of setting up a shortcut in the msi (created via Visual Studio 2008 Setup Project) and pointing it to the .ico file that contains the multi-resolution icon)

I have tried removing the 128x128 icon but to no avail. Interestingly in Windows Explorer the icon looks great even when using the Extra Large Icon setting. How can I create a high quality desktop icon that looks great on higher DPI settings on Windows?

EDIT: I tested removing the 128x128 option, then both the 48x48 and 128x128 option and tried Axialis IconWorkshop to create the icon - nothing worked.

EDIT: After much trial and error I think the real problem here is the Visual Studio 2008 Setup Project - manually setting up a link to my executable correctly uses the high resolution icon, however the link that is created by the setup doesn't use the correct icon. When setting the icon for the link in the editor it only gives me one option (index 0) which seems to be the 48x48 icon. I have tried manually adjusting the IconIndex in the .vdproj but had no luck.

A: 

It depends on your display DPI. See the Windows User Experience Interaction Guidelines Icons size recommendations.

Remus Rusanu
well, that page states: 'Note that not all of these sizes must be included in the .ico file. The code will scale larger ones down.' - But this doesn't seem to happen, otherwise it should scale down the 256 or 128 version
Patrick Klug
+1  A: 

This might give you some tips http://www.axialis.com/tutorials/tutorial-vistaicons.html

Romain Hippeau
A: 

Try enlarging your icons (Ctrl+MouseWheelUp) to a massive size and see if Windows picks up the larger icon, this will work even on standard DPI screen. (I use really really really large icons myself).

If using massive icons still only displays the lower resolution one, then it's a problem with the ICO file. Our graphic designer outputs icons containing 256, 64, 48, 32, 24 and 16 pixel sizes, each in True Color, 256 color and 16 color and that's working fine here on Win7 x64

sascha
+1  A: 

Thanks for all the suggestions!

After much trial and error the real problem here seems to be the Visual Studio 2008 Setup Project - manually setting up a link to my executable correctly uses the high resolution icon, however the link that is created by the setup doesn't use the correct icon. When setting the icon for the link in the editor it only gives me one option (index 0) which seems to be the 48x48 icon. I have tried manually adjusting the IconIndex in the .vdproj but had no luck. It seems that Visual Studio Setup Project does not support adding a link using a high quality icon.

EDIT: I can now confirm this problem. Once I moved to WiX to create the installer the link used the correct high quality icon.

Patrick Klug