schwaa
1
按照https://www.gnu.org/software/emacs/manual/html_node/elisp/Defining-Images.html的说法,创建图片的方法有两种。一种是指定一个文件名,一种是提供一个包含图片数据的字符串。第一种方法,我这里测试能工作,但是第二种不行。第二种方法创建的描述符号,用insert-image插入到buffer,emacs一直都只显示一个只有单个字母大小的方格。图片数据是用insert-file-contents-literally从文件里直接读出来的。
有没有道友用过第二种方法?可有示例?这个问题我调了半天,始终解决不了。
读入二进制数据先关闭 multibyte
(create-image
"<svg width=\"100\" height=\"100\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"></svg>"
'svg
t)
(insert-image
(svg-image
(let ((svg (svg-create 100 100)))
(svg-rectangle
svg 0 0
"100%" "100%" :fill-color "red")
svg)))
(insert-image
(create-image
(with-temp-buffer
(set-buffer-multibyte nil)
(insert-file-contents-literally
"/Users/xcy/src/emacs-mac/etc/images/splash.png")
(buffer-string))
'png t))
schwaa
3
实测有效。我缺了关闭multibyte那一行。谢谢道友。