我有一个简单的函数,它采用位图,并将位图转换为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框架会处理这种转换。
答案 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));