Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works
Anything · Lazarus or Delphi
Random projectRandom project

Icon-Symbols

For exporting or saving icons from an icon container.

View on GitHub

Member rating

No ratings yet.

Sign in to rate this project.

README

:computer: Icon-Symbols

Compiler 10 Seattle 10 1 Berlin 10 2 Tokyo 10 3 Rio 10 4 Sydney 11 Alexandria 12 Athens
Components

Icons as parts of the graphical user interface of a computer system, in conjunction with windows, menus and a pointing device (mouse), belong to the much larger topic of the history of the graphical user interface that has largely supplanted the text-based interface for casual use.

Icons introduced in Windows 1.0 were monochrome; in Windows 1.x and 2.x, ICO and CUR files were raw binary images with no directory wrapper: 678  — each file contained a single such image, at 64×64 pixels for icons and 32×32 for cursors.: 134  The 64×64 icon size was designed for a 1024×1024 target display and was shown downscaled on the lower-resolution monitors of the era.

:speech_balloon: Structure

An ICO or CUR file is made up of an ICONDIR ("Icon directory") structure, containing an ICONDIRENTRY structure for each image in the file, followed by a contiguous block of all image data. Each image is stored either as a raw DIB (see DIB format) or as a complete PNG file (see PNG format). It is customary practice to store the image data in the same order as the entries in the image directory.

All values in ICO/CUR files are represented in little-endian byte order.

Offset (bytes) Field Size (bytes) Description
0 bWidth 1 Image width in pixels. Can be any number between 0 and 255. 0 means width is 256.
1 bHeight 1 Image height in pixels. Can be any number between 0 and 255. 0 means height is 256.
2 bColorCount 1 Number of colors in the color table. For paletted depths: 2 for 1 bpp, 16 for 4 bpp; 0 for 8 bpp and above. An incorrect value affects image selection scoring for icons.
3 bReserved 1 Reserved. Must be 0.
4 wPlanes 2 In icon format: Specifies color planes. Should be 0 or 1. In cursor format: Specifies the horizontal coordinates of the hotspot in number of pixels from the left.
6 wBitCount 2 In icon format: Specifies bits per pixel. In cursor format: Specifies the vertical coordinates of the hotspot in number of pixels from the top.
8 dwBytesInRes 4 Image data size in bytes.
12 dwImageOffset 4 Specifies the offset of the DIB or PNG data from the beginning of the ICO/CUR file.

:speech_balloon: Examples

Icons (here are four examples from the Nuvola icon theme) are usually square and come in certain standard sizes.

Nuvola is a free software icon set under the GNU LGPL 2.1 license, created by David Vignoni. Originally created for desktop environments like KDE and GNOME, it is also available in packages for Windows and Mac. The final version, 1.0, contains almost 600 icons. The default set is in the PNG graphics format; an SVG version is also available.

The application icons, in particular, colourfully represent a wide variety of commonplace and easily recognised objects.

Windows Notepad Editor

:speech_balloon: Icon size and color-depth timeline

The standard color depths and pixel sizes shipped in system icons changed over successive releases, as summarized below.

Release Color depths (bpp) Standard sizes (px) Notes
Windows 1.x–2.x 2 64 (icons), 32 (cursors) Raw single image, no directory
Windows 3.x / NT 3.x 1,4 32 ICONDIR + DIB introduced; 1 bpp + 4 bpp paired
Windows 95 4 16, 32 Higher depths supported by the shell but rarely shipped; 16 px is the small (taskbar/notification-area) icon size
Windows NT 4.0 / 98 / Me / 2000 4,8 16, 32, 48 8 bpp and 48 px introduced in NT 4.0; became common by 98/Me
Windows XP 4, 8, 32 16, 32, 48 32 bpp with alpha channel introduced
Windows Vista / 7 4, 8, 32 16, 32, 48, 256 256 px added, stored as PNG
Windows 8 / 8.1 4, 8, 32 16, 20, 24, 32, 40, 48, 64, 256 Eight-size ladder completed
Windows 10 / 11 32 16, 20, 24, 32, 40, 48, 64, 256 Shipped icons are 32 bpp only