Yo uso eww para abrir una imagen de wikipedia:
https://upload.wikimedia.org/wikipedia/commons/6/6a/The_Burning_of_the_Houses_of_Parliament.jpg
Ahora, quería guardarlo en mi computadora.
¿Cómo puedo hacer eso?
Yo uso eww para abrir una imagen de wikipedia:
https://upload.wikimedia.org/wikipedia/commons/6/6a/The_Burning_of_the_Houses_of_Parliament.jpg
Ahora, quería guardarlo en mi computadora.
¿Cómo puedo hacer eso?
Respuestas:
Por lo que puedo decir, los *eww*
buffers almacenan datos de imágenes en la display
propiedad de texto.
Entonces, para guardar una imagen, necesitamos obtener esta propiedad y guardarla en un archivo.
Aquí hay un boceto de una solución.
(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))))
Este código parece funcionar en el caso en que lo probé, pero tiene al menos dos fallas:
save-buffer
llama a ganchos before-save-hooks
y after-save-hooks
, lo que realmente no tiene sentido aquí.Si sabe cómo mejorar esto, siga adelante.