Làm thế nào để lưu hình ảnh từ bộ đệm?


Câu trả lời:


4

Theo như tôi có thể nói *eww*bộ đệm lưu trữ dữ liệu hình ảnh trong thuộc tính displayvăn bản.

Vì vậy, để lưu hình ảnh, chúng ta cần lấy thuộc tính này và lưu nó vào một tệp.

Dưới đây là một bản phác thảo của một giải pháp.

(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))))

Mã này dường như hoạt động trong trường hợp tôi đã thử nó, nhưng nó có ít nhất hai lỗi:

  • Nó không thể phát hiện loại tệp hoặc tên tệp, vì vậy bạn phải chỉ định tên tệp có phần mở rộng.
  • save-buffergọi hook trong before-save-hooksafter-save-hooks, mà không thực sự có ý nghĩa ở đây.

Nếu bạn biết làm thế nào để cải thiện điều này, xin vui lòng đi thẳng về phía trước.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.