如何在 C# 中创建包含多种尺寸/图像的图标文件
如何创建包含多种尺寸的图标文件?
我知道我使用 Icon.FromHandle()
从位图创建图标,但如何向该图标添加另一个图像/大小?
编辑:我需要在我的应用程序中执行此操作,因此我无法执行外部应用程序来进行组合。
How do I create an icon file that contains multiple sizes?
I know that I create a icon from a bitmap using Icon.FromHandle()
but how do I add another image / size to that icon?
Edit: I need to do this in my application, so I cannot execute an external application to do the combining.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我一直在寻找一种将 .png 文件(没什么花哨的)组合成图标的方法。在无法找到简单的东西并且这个问题是顶部搜索结果后,我创建了下面的代码。
如果对于每个图像,以下代码可以创建具有多种尺寸的图标 Image.RawFormat 是 ImageFormat.Png,Image.PixelFormat 为
PixelFormat.Format32bppArgb
并且尺寸小于或等于256x256:
用法:
I was looking for a way to combine .png files, nothing fancy, into an icon. I created the below code after not being able to find something simple and with this question being the top search result.
The following code can create an icon with multiple sizes if, for each of the images, the Image.RawFormat is ImageFormat.Png, the Image.PixelFormat is
PixelFormat.Format32bppArgb
and the dimensions are less than or equal to256x256
:Usage:
Quick CYA:我只是谷歌搜索了一下,还没有测试下面的方法。 YMMV。
我发现这篇文章,其中提到了一个执行此操作的类(尽管是在VB中) .Net,但很容易翻译),并讲述了他如何使用它。虽然该线程指向的页面似乎不再包含提到的源代码,但我确实找到了它的一个版本 此处。
Quick CYA: I just did a Google search, and have not tested the method below. YMMV.
I found this article, which mentions a class that does this (albeit in VB.Net, but easy enough to translate), and tells how he used it. While the page that the thread points to no longer appears to have the source code mentioned, I did find a version of it here.
这可以通过 IconLib 来完成。您可以从 CodeProject 文章获取源代码,也可以从我的 GitHub 镜像获取编译后的 dll。
CreateFrom
可以采用 256x256 png 或System.Drawing.Bitmap
对象的路径。This can be done with IconLib. You can get the source from the CodeProject article or you can get a compiled dll from my GitHub mirror.
CreateFrom
can take either the path to a 256x256 png or aSystem.Drawing.Bitmap
object.您无法使用
System.Drawing
API 创建图标。它们是为访问图标文件中的特定图标而构建的,而不是为了将多个图标写回到 .ico 文件中。如果您只想制作图标,您可以使用 GIMP 或其他图像处理程序来创建 .ico 文件。否则,如果您确实需要以编程方式制作 .ico 文件,您可以使用 png2ico (调用使用 System.Diagnostics.Process.Start )或类似的东西。
You can't create an icon using the
System.Drawing
APIs. They were built for accessing specific icons from within an icon file, but not for writing back multiple icons to an .ico file.If you are just wanting to make icons, you could use GIMP or another image processing program to create your .ico files. Otherwise if you really need to make the .ico files programatically, you could use png2ico (invoking using
System.Diagnostics.Process.Start
) or something similar.使用IcoFX:http://icofx.ro/
它可以创建Windows图标并在1个ico中存储多种尺寸和颜色文件
Use IcoFX: http://icofx.ro/
It can create Windows icons and store multiple sizes and colors in 1 ico file