Bitmap 保存成 icon

 

[System.Runtime.InteropServices.DllImport("user32.dll")]
extern static bool DestroyIcon(IntPtr handle);

        private void buttonConvert2Ico_Click(object sender, EventArgs e)
        {

            OpenFileDialog openFileDialog1 = new OpenFileDialog;

            openFileDialog1.InitialDirectory = "C:\\Data\\\" ;
            openFileDialog1.Filter = "BitMap(*.bmp)|*.bmp" ;
            openFileDialog1.FilterIndex = 2 ;
            openFileDialog1.RestoreDirectory = true ;

            if(openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    string sFn = openFileDialog1.FileName;
                    MessageBox.Show("Filename=" + sFn);
                    string destFileName = sFn.Substring(0, sFn.Length -3) +"ico";
                    // Create a Bitmap object from an image file.
                    Bitmap bmp = new Bitmap(sFn);
                    // Get an Hicon for myBitmap.
                    IntPtr Hicon = bmp.GetHicon();
                    // Create a new icon from the handle.
                    Icon newIcon = Icon.FromHandle(Hicon);
                    //Write Icon to File Stream
                    System.IO.FileStream fs = new System.IO.FileStream(destFileName, System.IO.FileMode.OpenOrCreate);
                    newIcon.Save(fs);
                    fs.Close();
                    DestroyIcon(Hicon);
                    //DestroyIcon( hIcon);
                    setStatus("Created icon From=" + sFn + ", into " + destFileName);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: Could not read/write file. Original error: " + ex.Message);
                }
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值