为了将所有大小的图标(ICO文件)提取为PNG图像从EXE文件,我注意到葡萄酒似乎自动完成了这一任务。
安装foobar2000之后,Wine (我猜)已经在~/.local/share/applications/wine/Programs/foobar2000.desktop上创建了一个桌面条目,包含以下内容:
[Desktop Entry]
Name=foobar2000
Exec=env WINEPREFIX="$HOME/.wine" wine C:\\\\windows\\\\command\\\\start.exe /Unix "$HOME/.wine/dosdevices/c:/users/Public/Start\\ Menu/Programs/foobar2000.lnk"
Type=Application
StartupNotify=true
Comment=Play, organize and tag your music.
Path=$HOME/.wine/dosdevices/c:/Program Files (x86)/foobar2000
Icon=3C17_foobar2000.0最后,Icon密钥吸引了我的眼球,我发现它是根据图标主题规范解决的。在四处搜寻时,我发现了~/local/share/icons/hicolor/*/apps/目录,其中包含这些图标的文件(每个文件夹都包含3C17_foobar2000.0.png),同样,我认为是葡萄酒创建的。
我的问题是,葡萄酒是如何从应用程序(或快捷文件)生成这些图像文件的?
发布于 2019-04-01 20:58:34
file包括一个处理此问题的winemenubuilder程序:它采用Windows快捷方式,并创建匹配的FDO (FreeDesktop.Org) .desktop文件。图标提取是其中的一部分,由open_module_icon和相关函数处理。要提取图标,winemenubuilder会找到与快捷方式相对应的可执行文件(如果需要,还可以选择等待创建),并使用LoadResource函数加载其包含的资源,查找图标,并将其转换为适当的图像格式。
wine winemenubuilder /path/to/link.lnk将链接转换为.desktop文件,在~/.local/share/applications/wine/Programs中,并提取可用的图标,转换它们,并将它们存储在~/.local/share/icons的适当子目录中。(我认为必须使用葡萄酒的驱动器映射来访问/path/to/link.lnk;它可以很好地处理已安装在葡萄酒中的.lnk文件。)
wine winemenubuilder -t /path/to/link.lnk /path/to/icon.png将link.lnk指向的可执行文件中的第一个图标提取为icon.png。
https://unix.stackexchange.com/questions/509360
复制相似问题