私はewwを使用してウィキペディアから画像を開きます。
https://upload.wikimedia.org/wikipedia/commons/6/6a/The_Burning_of_the_Houses_of_Parliament.jpg
今、それを自分のコンピューターに保存したかったのです。
どうやってやるの?
私はewwを使用してウィキペディアから画像を開きます。
https://upload.wikimedia.org/wikipedia/commons/6/6a/The_Burning_of_the_Houses_of_Parliament.jpg
今、それを自分のコンピューターに保存したかったのです。
どうやってやるの?
回答:
私の知る限り、*eww*
バッファはdisplay
テキストプロパティに画像データを格納します。
したがって、画像を保存するには、このプロパティを取得してファイルに保存する必要があります。
これがソリューションのスケッチです。
(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))))
このコードは、私がテストした場合には機能するようですが、少なくとも2つの欠陥があります。
save-buffer
ここでは実際には意味をなさないbefore-save-hooks
とafter-save-hooks
でフックを呼び出します。これを改善する方法を知っている場合は、すぐに進んでください。