37
votes

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

super crisp icon next to a friggin blurry one

(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 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.

7
Have you opened the Firefox and Chrome icons in IcoFX to see what is different between them?Stewbob
I've been wondering this very question. I've used SharpDevelop to create icons at all those resolutions and yet when I add them to my C# winforms app it ends up looking like junk in the start menu. I hope you find an answer. Otherwise I'll eventually get around to searching this one down.Christopher Painter
@A Space Odyssey: Great suggestion. The Chrome icon only seems to have a 48x48 version while the Firefox has a 256x256 but NOT a 128x128 - I will try to remove the 128x128 again and see if that worksPatrick Klug
no luck - can't figure out why the firefox icon works.Patrick Klug
Are you attaching each icon resolution as a separate icon resource? or does the exe have a single icon resource containing all resolutions?Chris Becke

7 Answers

12
votes

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.

1
votes

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

1
votes

easiest way is to open a copy of one of those ms .ico files in gimp, and replace those 72dpi pics with yours and scale them for each layer in the .ico file.

The attached screenshot is the windows media player icon oped up in GIMP enter image description here

0
votes

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

0
votes

I converted my .ico to a .png and then back to an ico on this site, and it seems to have worked: http://convertico.com/

Looks like it added 48x48 and 64x64.

0
votes

I used Gimp. Export as the image as ".ico"