Converting PNG to HICON

Converting PNG to HICON

Loading any PNG resource as an hIcon. Vista introduced PNG encoding for icons. There is an API that will convert PNGs to valid hIcon handles. API Declaration follows:

Private Declare Function CreateIconFromResourceEx Lib "user32.dll" ( _   pbIconBits As Any, ByVal cbSize As Long, ByVal fIcon As Long, _   ByVal dwVersion As Long, ByVal cxDesired As Long, _   ByVal cyDesired As Long, ByVal uFlags As Long) As Long

Simple example.

Let’s say you have the entire PNG image format in a zero-bound byte array, maybe loaded from file or form a resource, or within an actual ICO/CUR file. The API only needs to know where in the byte array that the PNG format begins. No icon directory or other icon header information is required.

hIcon = CreateIconFromResourceEx(pngData(0), UBound(pngData) + 1, 1, &H30000, 0, 0, 0)

Of course, you would destroy the hIcon when it is no longer needed.


About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist