Convert bitmap to icon

前端 未结 4 1148
闹比i
闹比i 2021-02-18 18:01

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)         


        
相关标签:
4条回答
  • 2021-02-18 18:14

    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.

    0 讨论(0)
  • 2021-02-18 18:34

    Please, use DestroyIcon after GetHicon, to prevent memory leak

    [DllImport("user32.dll", CharSet = CharSet.Auto)]
    extern static bool DestroyIcon(IntPtr handle);
    

    MSDN : https://msdn.microsoft.com/en-us/library/system.drawing.bitmap.gethicon%28v=vs.110%29.aspx

    0 讨论(0)
  • 2021-02-18 18:36

    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.

    0 讨论(0)
  • 2021-02-18 18:38

    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:

    using (Cbitmap = new Bitmap(sourceImage.Text))
    {
        Cbitmap.MakeTransparent(Color.White);
        System.IntPtr icH = Cbitmap.GetHicon();
        Icon ico = Icon.FromHandle(icH);
    }
    using (System.IO.FileStream f = new System.IO.FileStream(destinationFldr.Text + "\\image.ico", System.IO.FileMode.OpenOrCreate))
    {
        ico.Save(f);
    }
    

    Try it out.

    EDITED: Added the using statements.

    0 讨论(0)
提交回复
热议问题