【问题标题】:converting .PNG to .ICO in C/C# [closed]在 C/C# 中将 .PNG 转换为 .ICO [关闭]
【发布时间】:2012-01-12 23:10:28
【问题描述】:

我想将 .PNG 文件转换为 .ICO 文件。我想在不依赖任何互联网的情况下在本地进行(所以我不能使用 converttoico.com 等在线工具)。

我发现了一个很棒的工具,叫做 png2ico,但它有一个限制,它只能将大小为 1X1 的图像转换为 256X256。虽然目前我在修改PNG分辨率(C#),压缩成256X256,然后用这个工具转成icon,但是画质一点都不好。

有没有人知道任何可以执行此操作的本地库或任何可以帮助我的工具(免费或付费)?

谢谢。

【问题讨论】:

  • 在 C/C# 中?甚至 C/C++ 也不是同一种语言,但在这种情况下,我认为你真的应该下定决心。
  • 我知道 :),我的意思是,如果我在 C/C++(甚至是 COM)中获得一些本机 API,我可以使用 Interops,或者我可以直接使用 .NET 提供的任何 API。

标签: c# icons png


【解决方案1】:

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

convert image.png image.ico

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

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

【讨论】:

    【解决方案2】:

    您可以使用可以将 png 转换为 ico 的 ImageMagick 库,您可以在此处找到适用于 .NET 的 imageMagick:http://imagemagick.codeplex.com/。

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

    【讨论】:

      【解决方案3】:

      可能有点晚了,但这里有一些 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);
      }
      

      【讨论】:

      • 谢谢,很有用。这是一个 Powershell 版本:sdrv.ms/13JmBDT 只需使用:ConvertTo-Ico.ps1 [-Image] [[-Destination] ]
      • 生成的favicon质量真的很差。
      • @kipusoep - 此代码不考虑 PNG Alpha 通道。它还假设 PNG 是方形的并且大小对于 ICON 是合法的。但鉴于 PNG 的大小合适且完全不透明,这是转换所需的最低要求。
      • 低质量图标是这样生成的,所以gist.github.com/darkfall/1656050是一个更好的选择。
      【解决方案4】:

      我使用的一个非常好的免费工具是:https://avegly.itch.io/avegly-icon-converter +它的便携性。

      【讨论】:

        猜你喜欢
        • 2018-06-26
        • 2012-01-25
        • 2010-09-08
        • 2012-04-13
        • 2013-06-24
        • 1970-01-01
        • 2010-11-06
        • 2011-06-05
        • 2018-06-26
        相关资源
        最近更新 更多