
WinApps 图标提取完整指南3 步从 EXE 文件拿到高清图标【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps在 Linux 上运行 Windows 应用WinApps 图标提取功能可以自动从 EXE 文件中抓取高清图标让 Microsoft Office、Adobe Photoshop 这类软件在 Linux 桌面里看起来就是原生应用。这篇指南从图标为什么总是糊这个痛点讲起把图标的发现、提取、转换、存放四件事一次说透最后给你两条命令就跑通的落地路径。Linux 桌面上的 Windows 应用图标为什么总差点意思直接拿 Windows 应用塞进 Linux 启动器最常见的两个问题是压根没有图标只能显示一个灰色程序框或者图标只有 16x16放到高分屏上糊成一团。WinApps 的思路是反过来的——图标本来就埋在 EXE 文件里那就把它挖出来。配置完成后它会自动扫描 Windows 虚拟机或容器里安装过的一切应用逐一取出关联图标并生成对应的 .desktop 启动项。装完 Word 和 Excel 之后你在启动器里看到的应该是它们各自的彩色标志而不是两片空白。提取之前先找应用WinApps 的 4 类扫描来源图标提取的入口是 install/ExtractPrograms.ps1但脚本干的第一件事不是取图标而是列清单。它从 4 个渠道收集已安装的应用Windows 注册表常规安装程序留下的痕迹覆盖面最广Chocolatey读取C:\ProgramData\chocolatey\bin下的 shim 文件顺手把名字里的 - Chocolatey Shim 后缀剥掉Scoop扫描用户目录下 scoop shims 文件夹里的可执行文件UWP 应用走 Get-AppxPackage 单独处理只保留非系统应用Windows 系统本身的条目会被跳过。不同来源的应用在列表里会带上 [CHOCO]、[SCOOP]、[UWP] 这类标签方便你分辨一个应用是从哪条渠道装进来的。3 步看懂 EXE 图标提取从 ExtractAssociatedIcon 到 base64清单确定后每个 EXE 都会走一条固定的转换链路 ⚙️ 第一步调用 .NET 的System.Drawing.Icon.ExtractAssociatedIcon取出系统为这个程序关联的默认图标——也就是 Windows 资源管理器里显示的那个。第二步把图标绘制到一张新位图上存成 PNG。这一步不是可有可无的格式美化PNG 保留了图标的完整颜色深度避免转码后发脏发糊。第三步把 PNG 编码为 base64 字符串跟着应用名、可执行路径一起输出成 NAMES、EXES、ICONS 三组 bash 数组供 Linux 端脚本直接消费。跨系统传输不需要搬运任何图片文件一个字符串就够了。图标最终存到哪预置 SVG 与动态提取的分工图标来源其实有两路。一路是仓库里人工备好的社区验证过的高分辨率 SVG 放在 apps/ 目录下各自的子文件夹中比如 apps/word/icon.svg 对应 Microsoft Wordapps/excel/icon.svg 对应 Excelapps/photoshop-cc/icon.svg 对应 Adobe Photoshop。命中这些应用时Linux 端直接加载 SVG显示效果最稳。另一路是动态提取清单里没有预置图标的就从 EXE 现场提取结果缓存在本地下次启动不再重复跑一遍。这里还藏着一个兜底设计万一某个 EXE 提取失败——文件损坏、格式怪异都可能——脚本不会报错中断而是塞一张通用的 32x32 PNG 顶上去保证整个应用列表依然完整可用。2 条命令跑通从克隆仓库到图标就位实际操作比上面的细节短得多。第一步把仓库克隆到本地git clone https://gitcode.com/GitHub_Trending/wina/winapps第二步在仓库目录里执行 setup.sh。它会先检查 Windows 后端libvirt 虚拟机或 Docker/Podman 容器是否就绪再触发扫描与图标提取最后为每个应用写好 .desktop 启动项——用户级安装落在~/.local/share/applications系统级安装落在/usr/share/applications。跑完刷新一次桌面图标就都齐了。如果你只是想借用它的提取能力比如给自己的启动器批量做一批 Windows 应用图标把 ExtractPrograms.ps1 里EXE 进、base64 PNG 出这段逻辑拆出来复用就行并不依赖 WinApps 的其余部分。最后给两条建议装完 WinApps 后先看启动器里 Word、Excel 这几个已知应用它们的图标应当是预置 SVG 级别的高清效果再挑一两个冷门应用观察动态提取结果如果图标发虚多半是源 EXE 自带的图标本身就小这种情况换个安装源重装一遍往往比改脚本更划算。【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考