从位图到图标的图像转换似乎不起作用

时间:2010-04-19 02:55:23

标签: c# .net image-processing image-manipulation image-conversion

我有一个简单的函数,它采用位图,并将位图转换为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也不会将图像重新标记为图标。

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

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

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

1 个答案:

答案 0 :(得分: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));