Tag: 图标

从文件中提取特定图标图层,然后将其另存为具有透明度的.ico文件

正如问题的标题所示,我正在尝试从文件中提取特定的图标图层,然后将其保存为具有透明度的ico文件(如源图标所示)。 有许多与图标提取有关的问题,但这是我在使用SHDefExtractIcon函数时应用的以下代码所特有的 。 我遇到的问题是生成的.ico文件的颜色是错误的,它产生了一种半透明的可怕透明度,另一方面,生成的.png文件被完美保存。 这是生成的PNG文件: 这是生成的ICO文件: 这是Windows API的限制,还是我做错了什么? C#: [DllImport(“Shell32.dll”, SetLastError = false)] public static extern int SHDefExtractIcon(string iconFile, int iconIndex, uint flags, ref IntPtr hiconLarge, ref IntPtr hiconSmall, uint iconSize); IntPtr hiconLarge = default(IntPtr); SHDefExtractIcon(“C:\\file.exe”, 0, 0, hiconLarge, null, 256); // ToDO: Handle HRESULT. Icon ico = Icon.FromHandle(hiconLarge); Bitmap bmp = ico.ToBitmap(); // Save […]

在C#中使用UpdateResource?

我正在尝试以编程方式更改外部可执行文件的图标。 我用谷歌搜索,并使用C ++找到有关此问题的大量信息。 基本上,我需要使用BeginUpdateResource,UpdateResource和EndUpdateResource。 问题是 – 我不知道在C#中传递给UpdateResource的内容。 这是我到目前为止的代码: class IconChanger { [DllImport(“kernel32.dll”, SetLastError = true)] static extern IntPtr BeginUpdateResource(string pFileName, [MarshalAs(UnmanagedType.Bool)]bool bDeleteExistingResources); [DllImport(“kernel32.dll”, SetLastError = true)] static extern bool UpdateResource(IntPtr hUpdate, string lpType, string lpName, ushort wLanguage, IntPtr lpData, uint cbData); [DllImport(“kernel32.dll”, SetLastError = true)] static extern bool EndUpdateResource(IntPtr hUpdate, bool fDiscard); public enum ICResult […]

Visual Studio,更改应用程序图标,如何?

我正在Visual Studio 2005中第一次使用C#项目,我想知道除了更改项目属性中的正确资源之外,是否还有一些特殊需要更改应用程序图标。 我设法查看资源管理器中显示的新图标,但应用程序,托盘和任务栏中的图标保留为旧图标。 我想知道这是否与Windows Vista有关,可能缓存了应用程序图标,从那时起就没有真正刷新它。 如果您打开了缩略图,则在资源管理器中也会发生同样的情况。 如果它确实缓存了图标,我该怎么做才能更新/删除缓存,以及它基于什么(GUID也许?不是文件名,虽然我改变了但仍然相同)。 谢谢

为我的所有表单设置相同的图标

有没有办法在不必逐个更改的情况下为我的所有表单设置相同的图标? 类似于为解决方案中的所有项目设置GlobalAssemblyInfo时的情况。

如何在WPF中显示Windows文件图标?

目前我通过调用SHGetFileInfo获取本机图标。 然后,我使用以下代码将其转换为位图。 Bitmap最终以WPF格式显示。 有没有更快的方法来做同样的事情? try { using (Icon i = Icon.FromHandle(shinfo.hIcon)) { Bitmap bmp = i.ToBitmap(); MemoryStream strm = new MemoryStream(); bmp.Save(strm, System.Drawing.Imaging.ImageFormat.Png); BitmapImage bmpImage = new BitmapImage(); bmpImage.BeginInit(); strm.Seek(0, SeekOrigin.Begin); bmpImage.StreamSource = strm; bmpImage.EndInit(); return bmpImage; } } finally { Win32.DestroyIcon(hImgLarge); }

如何获取与特定文件夹关联的图标?

我的一个项目中需要我从其路径获取特定文件夹的图标。 例如: 如果我使用C:\Users\Username\Desktop我想获取与Desktop文件夹关联的图标 如果我使用具有自定义图标的文件夹的路径,我想获得该图标 不,我不想要一般默认文件夹图标 我一直在寻找将近3天没有运气。 任何帮助表示赞赏。

如何将Bitmap保存为图标?

我需要保存从图像文件(.png,.jpeg,.bmp)加载的Bitmap对象,并将其作为图标(.ico)保存到单独的文件中。 首先,我尝试使用Icon ImageFormat将Bitmap对象保存到文件中: using System.Drawing; Bitmap bmp = (Bitmap)pictureBox1.Image; bmp.Save(@”C:\icon.ico”, Imaging.ImageFormat.Icon); 这个失败了,因为生成的图标格式不正确,不能用作图标。 接下来是从Bitmap获取HIcon并将其保存到文件中: using System.Drawing; using System.IO; StreamWriter iconWriter = new StreamWriter(@”C:\icon.ico”); Icon ico = Icon.FromHandle(((Bitmap)pictureBox1.Image).GetHicon()) ico.Save(iconWriter.BaseStream); iconWriter.Close(); iconWriter.Dispose(); 这个也不起作用。 尽管图标文件已正确写入,但它只有16种颜色且宽度和高度有限。 我希望能够编写具有自定义宽度和高度的图标,以保留原始图像的颜色。 这有可能在.NET中实现吗? 提前致谢。

在应用程序中使用256 x 256 Windows Vista图标

我有一个应用程序,我已经制作了一个256 x 256 Windows Vista图标。 我想知道如何在用作应用程序图标的ico文件中使用256×256 PNG文件并将其显示在表单上的图片框中。 我使用的是VB.NET,但C#中的答案都很好。 我想我可能不得不使用reflection。 我不确定这在Windows XP中是否可行,并且可能需要Windows Vista API

以编程方式更改WPF中的按钮图标

我目前有一个按钮,上面有一个图标/图像。 我在XAML中配置了按钮和图像: 我需要能够以编程方式将此按钮的图像从playIcon更改为stopIcon。 我怎样才能做到这一点?

shell图标叠加(C#)

我需要一种方法来使用C#或C ++为Windows XP / Vista中的文件夹和文件创建Icon Overlay? 任何例子? 谢谢, – 西恩!