图像到图标的转换
Posted
技术标签:
【中文标题】图像到图标的转换【英文标题】:Image to Icon conversion 【发布时间】:2011-10-26 18:08:57 【问题描述】:我正在使用以下代码将图像转换为图标。 这是我的代码。
Bitmap Cbitmap=null;
try
Cbitmap = new Bitmap("path of local image");
catch(Exception)
return;
Cbitmap.MakeTransparent(Color.White);
System.IntPtr icH = Cbitmap.GetHicon();
Icon ico = Icon.FromHandle(icH);
Cbitmap.Dispose();
System.IO.FileStream f = new System.IO.FileStream(Path where to save icon"" + "\\image.ico", System.IO.FileMode.OpenOrCreate);
ico.Save(f);
f.close();
ico.dispose();
现在它已成功转换为图标,但是当我尝试在图像查看器中打开它时,它显示 预览不可用。
还有什么时候尝试在它说的项目中打开它
(image.ico 不是图标文件)
【问题讨论】:
一个ico文件只是一个重命名的bmp,你检查过它是否保存为bmp吗? 抱歉保存为JPEG格式,有关系吗? 那么JPEG不能用上面的方法转成Icon吗? @Russ C, ICO 不是 BMP,即使图标中存储的图像的二进制格式与 BMP 相关。 卢塞罗是正确的。图标对数据使用运行长度编码,但格式不同。 @Russ C - 该知识库文章仅适用于 Windows 98 和 ME。这是一种特殊的重命名情况,Windows 在重命名文件时会为您进行转换。 【参考方案1】:您的代码很好。它将 JPG 转换为图标。您原始 JPG 的尺寸是多少?如果它们不是标准图标大小之一,您会遇到奇怪的行为。如果原始 JPG 太大,您将收到您所看到的错误。
一些较常见的尺寸是 16x16、24x24、32x32、48x48。
【讨论】:
以上是关于图像到图标的转换的主要内容,如果未能解决你的问题,请参考以下文章
如何将图像转换为通知图标以在 Android 应用程序中使用?
使用 <path> 标签将图标图像转换为 svg 的最佳方法