Windows 下的 Emacs 和 PNG 文件

Emacs under Windows and PNG files

有没有人知道如何让 PNG 图像在 Win32 下的 Emacs 23 中显示?我已经安装了 gnuwin32 实用程序集,包括 libpng 和 zlib; C:\\\\Program Files\\\\GnuWin32\\\\bin 在路径中。 JPG 文件开始工作,但不是 PNG。我会很感激任何关于让它工作的提示。

编辑:PNG 缩略图实际上显示良好(例如,通过 C-t C-t 显示)。但是,打开它们会失败(在基本模式下作为垃圾打开,并且 M-x 图像模式说"无效的图像规范")。


您必须将其中一个 dll "libpng12d.dll" "libpng12.dll" "libpng.dll" "libpng13d.dll" "libpng13.dll" 复制到您的 emacs- 23.1/bin/ 目录。它们需要 zlib1.dll,您也必须复制它。我对 jpeg62.dll 和 giflib4.dll 做了同样的事情,现在我的 emacs 支持 jpg、gif 和 png 文件。出于某种原因,如果我只是将这些 dll 放在路径中,它就不起作用。

您可以检查 (image-type-available-p 'png) 以查看是否支持 png。 image-library-alist 将图像类型映射到支持它的 dll 列表。


根据官方手册:

3.3 如何获得图像支持?

Emacs 内置了对 XBM 和 PBM/PGM/PPM 映像的支持。这足以看到单色闪屏和工具栏图标。从 22.2 开始,Windows 的官方预编译二进制文件捆绑了 libXpm,这是显示这些图像的彩色版本所必需的。

Emacs 也被编译以识别 JPEG、PNG、GIF 和 TIFF 图像,但显示这些图像类型需要外部 DLL,而这些 DLL 未与 Emacs 捆绑在一起。请参阅其他有用的端口。

那些用于各种图像格式的 dll(据我所知)- XPM (xpm4.dll)、PNG (libpng13.dll、zlib1.dll)、JPEG (jpeg62.dll)、TIFF (libtiff3.dll)和 GIF (giflib4.dll);


从 Emacs 25 开始,Emacs Windows 下载目录包括 -deps zip 包,可以将其解压缩到您的 emacs 安装文件夹,并包括 PNG、SVG、JPEG、GIF、TIFF 等的图像库。

另请参阅此 emacs.stackexchange 答案。


要显示您的 Emacs for Windows 版本需要哪个版本的 PNG dll,您可以评估 (cdr (assq 'png dynamic-library-alist))