Eu uso o eww para abrir uma imagem da wikipedia:
https://upload.wikimedia.org/wikipedia/commons/6/6a/The_Burning_of_the_Houses_of_Parliament.jpg
Agora, eu queria salvá-lo no meu computador.
Como eu posso fazer isso?
Eu uso o eww para abrir uma imagem da wikipedia:
https://upload.wikimedia.org/wikipedia/commons/6/6a/The_Burning_of_the_Houses_of_Parliament.jpg
Agora, eu queria salvá-lo no meu computador.
Como eu posso fazer isso?
Tanto quanto posso dizer, os *eww*
buffers armazenam os dados da imagem na display
propriedade text.
Portanto, para salvar uma imagem, precisamos obter essa propriedade e salvá-la em um arquivo.
Aqui está um esboço de uma solução.
(defun my-eww-save-image (filename)
"Save an image opened in an *eww* buffer to a file."
(interactive "G")
(let ((image (get-text-property (point-min) 'display)))
(with-temp-buffer
(setq buffer-file-name filename)
(insert
(plist-get (if (eq (car image) 'image) (cdr image)) :data))
(save-buffer))))
Esse código parece funcionar no caso em que o testei, mas tem pelo menos duas falhas:
save-buffer
chama ganchos before-save-hooks
e after-save-hooks
, o que realmente não faz sentido aqui.Se você sabe como melhorar isso, vá em frente.