1

我有一个简单的函数,它需要一个位图,并将位图转换为 ICON 格式。下面是函数。(我用文字值代替变量)

    Bitmap tempBmp = new Bitmap(@"C:\temp\mypicture.jpeg");
    Bitmap bmp = new Bitmap(tempBmp, 16, 16);
    bmp.Save("@C:\temp\mypicture2.ico", ImageFormat.Icon)

它似乎没有正确转换......或者我认为。图像转换后,一些浏览器不会将图像重新识别为真正的“ICON”,甚至 Visual Studio 2008 也不会将图像转换为图标格式后重新识别为图标。

例如,我打算使用刚刚转换的图标为我的 Win32 表单应用程序设置图标属性。我打开对话框并选择我刚刚转换的图标并收到以下错误。

--“参数‘图片’必须是可以用作图标的图片。”

我浏览了网络并遇到了复杂的代码,人们花时间手动将位图转换为不同的格式,但我认为上面的代码应该可以工作,并且 .NET 框架会处理这种转换。

4

1 回答 1

2

我测试了以下代码,它可以工作,但结果不是很好。请记住,图标的调色板有限,您可能会丢失一些颜色信息。

    Bitmap b = new Bitmap(@"d:\file.jpg");
    Icon i = Icon.FromHandle(b.GetHicon());
    i.Save(File.Open(@"d:\file.ico", FileMode.OpenOrCreate, FileAccess.Write));
于 2010-04-19T03:29:26.417 回答