Half a croissant, on a plate, with a sign in front of it saying '50c'
h a l f b a k e r y
Apply directly to forehead.

idea: add, search, annotate, link, view, overview, recent, by name, random

meta: news, help, about, links, report a problem

account: browse anonymously, or get an account and write.



Hinting for icons

Vector icons which can look good at all sizes
  (+6, -1)
(+6, -1)
  [vote for,

Bitmap icons have some major disadvantages. To display them at different sizes requires each size to be seperately drawn or rendered, and the bigger they are (in terms of area) the larger the filesize. Under most circumstances the first of these is the real killer, as it means you can't globally scale your desktop furniture to be exactly the size you think would be best.
And yet, with a few insignificant exceptions, they're the norm. Why is this? Text has been resizable for years - now even Microsoft can mostly do that right.

I suggest that the reason is not that the technology to do this is not there - it obviously is - but that vector graphics don't look quite as trim as hand-tweaked bitmaps at the small end. And why is that, particularly? I believe that it's not to do with anti-aliasing, it's down to a lack of ability to declare what is important about the icon. When an image is big, many designs require lots of fine detailing to look right, but when an image is small these clutter the icon - just where it's necessary to get the essentials across.

For font display systems, on the other hand, it's been obvious for a long time that while various details can be dropped at small sizes, some information remains essential. Various techniques are used, but in particular, the important lines of a character may be hinted, to indicate that they must be retained rather than lost to the blurring effect of aliasing, or verticals and horizontals may be nudged to fit in with the pixels of the display. There are also useful concepts appropriate to specific display technologies, such as treating the coloured sub-pixel elements of LCD displays as individual pixels for improved resolution.

Therefore I propose a vector-based icon-generating system should do something similar - the designer should be able to declare the type of each image component - whether it is aliased or nudged to whole pixels etc, and set the range of sizes at which each will display. At very small sizes, an icon will be very simple but still carry the gist of the idea, but when scaled up it would generally gain detail, and at some point may change completely to a more elegant style.

At minimum every integral pixel-size should look as good as the equivalent hand-tweaked bitmap. And potentially, sizes in-between or non-aligned positions may be attainable. This will clear a hurdle for the optimal utilisation of higher-resolution displays alongside non-standard (small screen, handheld etc) display hardware.

Loris, Jun 05 2009

Please log in.
If you're not logged in, you can see what this page looks like, but you will not be able to add anything.


       //In theory a 32 bit png with 8bit alpha channel should be sufficient to scale to any resolution. I'm pretty sure the old hand-crafted icons are a direct result of the limited colour palette and lack of transparency.//   

       That you can say that suggests that you haven't ever tried to scale big images down to get decent small icons.
Loris, Jun 05 2009

       PNG files takeages to load.
simonj, Jun 05 2009

       Apart from noting that icons are often harder to find than a simple word, yeah [+] : postscript or true-type generated icons are pretty obvious and have been for what... 20 years now ? and they still haven't done it.   

       The "trick" is to generate a bitmap for the icons at startup then use the bitmapped icons.
FlyingToaster, Jun 06 2009

       //...icons are often harder to find than a simple word...//   

       For badly designed icons, this is absolutely true. Well designed icons, on the other hand, can be an amazing improvement over text. If you want this job done properly, kill Microsoft before you start.   

       //The "trick" is to generate a bitmap for the icons at startup then use the bitmapped icons. //   

       If all icons are drawn pixel-aligned, then yes, caching them may well be a good idea. Text characters are often drawn non-aligned, although admittedly the requirements are usually rather different. I can, however, imagine that there are some circumstances where it would be nice for icons to scale to non-integer dimensions but arrange to each other uniformly, for instance.
Loris, Jun 06 2009

       at any point in time if you need it to be dynamic in any way (change size, orientation, moodlighting, whatever) you revert to the vector map, but a simple position change you'd just use the bitmap: it'd look the same as redrawing the vector and is moved around much faster.   

       I find it very odd that they (anybody really, but I mean M$) haven't done that yet... maybe they're waiting for a slow year or something.
FlyingToaster, Jun 07 2009

       I am not sure, but can you not define the scaling properties of .svg graphics? Anyways, the idea goes much further, so [+].
loonquawl, Jun 07 2009


back: main index

business  computer  culture  fashion  food  halfbakery  home  other  product  public  science  sport  vehicle