公司动态
WinApps 图标提取指南:让 Windows 应用配得上 Linux 桌面
WinApps 图标提取指南让 Windows 应用配得上 Linux 桌面【免费下载链接】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/winappsWindows 应用在 Linux 桌面上终于有了像样的图标。WinApps 图标提取会从每个已安装的 EXE 里自动取回高分辨率图标让 Word、Photoshop 在 GNOME/KDE 桌面换上原生质感的脸。下面先花几分钟看到效果再拆解图标提取的完整链路。 5 分钟上手Linux 桌面显示 Windows 应用图标先把源码拉下来。执行下面的命令当前目录会多出 winapps 文件夹git clone https://gitcode.com/GitHub_Trending/wina/winapps cd winapps ./setup.sh装脚本之前你需要一个 WinApps 够得着的 Windows 环境——一台 libvirt 虚拟机或一个 Docker 容器并且开着 RDP。起法可参考仓库里的 docs/libvirt.md 或 docs/docker.md。接着运行安装脚本 setup.sh。它会先问你是装在当前用户还是整个系统然后开始扫描 Windows 里装好的应用把 .desktop 条目和图标一并写进 Linux 桌面。 背后发生了什么EXE 图标提取的三步旅程整个过程跑在 Windows 里主角是 install/ExtractPrograms.ps1它按顺序干三件事。先摸清装了哪些应用。脚本扫一遍注册表、Chocolatey 和 Scoop 这两个包管理器以及 UWP 应用清单给每个应用产出一条记录名字加 EXE 路径。再逐个从 EXE 里抠图标。用的是 .NET 框架里的一行调用System.Drawing.Icon.ExtractAssociatedIcon——读出的正是 Windows 自己显示这个可执行文件时用的那枚图标。最后转成 Linux 能收下的形态。脚本把图标画进位图、存成 PNG 保住色深再整段 base64 编码成一串字符串随名字和路径一起递到 Linux 这一侧。图标从哪来预置与动态的优先级你在菜单里看到的 Word 图标多半不是从 EXE 现抠的——那是社区预置的高清 SVG。apps/ 目录里每个应用一个文件夹里面的图标是矢量图放大到任何 DPI 都不糊。Word、Excel、Photoshop 都在这边。不在名单里的应用WinApps 才走前面那套现抠流程图标直接从 EXE 里拉出来写进本地缓存下次重扫不必再算一遍。一句话记住这套优先级预置 SVG 优先动态提取兜底。质量与性能细节原始分辨率、PNG 保色和缓存工程上有几处不起眼的讲究正是它们让图标不翻车原始分辨率提取出来的图标按原尺寸存放高 DPI 屏上不发虚。PNG 保色转换环节一律落在 PNG渐变和透明通道不被压坏。兜底某个 EXE 抠图失败时换一枚通用 32x32 的 PNG 顶上菜单里不留破图。缓存已提取的图标写进本地缓存重跑扫描不重复劳动。️ 进阶玩法批量提取 EXE 图标给自定制启动器就算你只想把这套提取逻辑当独立工具用也完全够得着。批量提取把一排 EXE 指向同一条ExtractAssociatedIcon流程逐个过就能攒出一整套应用图标。格式转换Windows 的 .ico 在 Linux 上并不顺手走一遍抠图 → 画位图 → 存 PNG就拿到跨平台友好的格式。喂给自定制启动器攒好图标后配上 .desktop 条目就是一个自己的 Windows 应用启动器。WinApps 图标提取是一条发现 → 提取 → 编码 → 缓存的短链路看懂了就不用背只要知道问题出在哪一环。现在就能做的小动作翻到 apps/ 里挑你常用的那枚应用图标你会直观看到预置图标到底多清晰顺便判断自己的应用值不值得补进这份名单。【免费下载链接】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),仅供参考