Hi this is my little bit of code I made to convert a 16 color bitmap to a 16 color icon with your selected transparent color. Anyway hope it maybe of some use to someone.
Comments suggestions welcome.
vbnet Code:
Private Sub BitmapToIcon16(ByVal BitmapFile As String, ByVal IconFile As String, ByVal TransColor As Color)
'This little sniplet of code will convert a 16 color bitmap to a icon file.
'Check that bitmap file is here.
If Not System.IO.File.Exists(BitmapFile) Then
MessageBox.Show("Bitmap File Not Found", "File Not Found", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Else
'Load bitmap
Dim bmp As Bitmap = Bitmap.FromFile(BitmapFile)
'Set trans color.
bmp.MakeTransparent(TransColor)
'Convert bitmap to icon from bitmap handle
Dim ico As Icon = Icon.FromHandle(bmp.GetHicon())
'Create the file that we use for the icon.
Dim sw As System.IO.StreamWriter = System.IO.File.CreateText(IconFile)
'Save icon data to filename.
ico.Save(sw.BaseStream)
'Close file
sw.Close()
'Clear up
ico.Dispose()
bmp.Dispose()
sw.Dispose()
End If
End Sub
Example
vbnet Code:
Private Sub cmdDoIt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDoIt.Click
'Make a 32x32 16 color icon from a 16 color bitmap with seleced tranparent color.
BitmapToIcon16("C:\out\rocket.bmp", "C:\out\rocket.ico", Color.Magenta)
End Sub