在C/C中将.PNG转换为.ICO#

Vik*_*exe 5 c# icons png

我想将.PNG文件转换为.ICO文件.我想在本地做任何互联网依赖(所以我不能使用像converttoico.com等在线工具).

我发现了一个名为png2ico的奇妙工具,但它有一个限制,它只能将大小为1X1的图像转换为256X256.虽然目前我正在修改PNG分辨率(在C#中)并将其压缩到256X256,然后使用此工具将其转换为图标,但图像质量根本不好.

有没有人知道任何本地图书馆这样做或任何可以帮助我的工具(免费或付费)?

谢谢.

efk*_*kah 35

可能有点晚了,但这里有一些c#解决方案:

using (FileStream stream = File.OpenWrite(@"C:\temp\test.ico"))
{
    Bitmap bitmap = (Bitmap)Image.FromFile(@"c:\temp\test.png");
    Icon.FromHandle(bitmap.GetHicon()).Save(stream);
}
Run Code Online (Sandbox Code Playgroud)

  • 生成的图标的质量非常糟糕。 (3认同)
  • 这种方式生成的图标质量较差,因此 https://gist.github.com/darkfall/1656050 是一个更好的选择。 (3认同)
  • 谢谢,非常有用。这是Powershell版本:http://sdrv.ms/13JmBDT只需使用:ConvertTo-Ico.ps1 [-Image] <string> [[-Destination] <string>] (2认同)
  • @kipusoep-此代码未考虑PNG Alpha通道。它还假定PNG为正方形,并且大小对ICON合法。但是,鉴于大小合适且PNG完全不透明,这是转换所需的最低要求。 (2认同)

Ble*_*der 6

ImageMagick是有史以来最棒的 CLI 图像处理实用程序:

convert image.png image.ico
Run Code Online (Sandbox Code Playgroud)

就是这么简单,而且几乎适用于您使用的所有格式。

此外,它还具有适用于多种不同语言的 API(C#,如果我没记错的话)。


ale*_*oot 4

您可以使用可以将 png 转换为 ico 的 ImageMagick 库,您可以在这里找到 imageMagick for .NET: http: //imagemagick.codeplex.com/

如果您需要一个程序来执行此操作,您可以尝试以批处理模式使用 IrFanView ...