I am trying to convert bitmap into icon. But there is some error as the resultant file is just blank.
private void btnCnvrtSave_Click(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(sourceFile); //sourceFile = openfiledialog.FileName;
IntPtr Hicon = bmp.GetHicon();
Icon myIcon = Icon.FromHandle(Hicon);
SaveFileDialog sfd = new SaveFileDialog();
sfd.Title = "Save Icon";
sfd.Filter = "Icon|*.ico";
sfd.ShowDialog();
FileStream fileStream = new FileStream(sfd.FileName, FileMode.OpenOrCreate);
myIcon.Save(fileStream);
fileStream.Flush();
fileStream.Close();
MessageBox.Show("Image is converted successfully!");
//Process.Start(sfd.FileName);
}
I've tried a lot to figure-out the problem but couldn't. Please tell me where the problem is.
Please, use DestroyIcon after GetHicon, to prevent memory leak
MSDN : https://msdn.microsoft.com/en-us/library/system.drawing.bitmap.gethicon%28v=vs.110%29.aspx
This article describes how to convert a bitmap to an icon.
http://www.go4expert.com/forums/showthread.php?t=19250
It looks very similiar to your one:
Try it out.
EDITED: Added the using statements.
The only problem with this code is that it supports bitmap images upto 128x128.
It yields a blank ico file if the size of bitmap is greater.
Also, this SO question links to how to convert an image to an icon, which may lead you in the right direction.
Notice, however, that the code as written needs to be modified to avoid a handle leak. But the solution is also linked in that question.