LoginSignup
1
1

More than 5 years have passed since last update.

EmacsLispでURLの画像を取得

Last updated at Posted at 2015-01-11

概要

Emacsで画像を使うときにwgetしてローカルに保存せずに、
そのまま画像を見たかったので画像をバッファに表示する関数を作りました。

定義

  • 処理 image-urlの画像を展開してバッファを返す
  • 引数 image-url:画像のURL
  • 返値 buffer 画像が展開されたバッファ
(defun get-image-from-url (image-url)
  "Get image data from url, and return image buffer"
  (let ((start-buffer (current-buffer))
        (image-data 
         (url-http-get image-url nil))
        (created-buffer (generate-new-buffer "*image*")))
    (set-buffer created-buffer)
    (insert image-data)
    (image-mode)
    (set-buffer start-buffer)
    created-buffer))

(defun url-http-get (url args)
  "Send ARGS to URL as a GET request."
  (let (
        (response-string nil)
        (url-request-method "GET")
        (url-request-data
         (mapconcat (lambda (arg)
                      (concat (url-hexify-string (car arg))
                              "="
                              (url-hexify-string (cdr arg))))
                    args
                    "&")))
    (set-buffer
     (url-retrieve-synchronously
      (concat url "?" url-request-data)))
    (goto-char (point-min))
    (re-search-forward "\n\n")
    (setq response-string
          (buffer-substring-no-properties
           (point) (point-max)))
    (kill-buffer (current-buffer))
    response-string))

使い方

(switch-to-buffer
 (get-image-from-url "http://upload.wikimedia.org/wikipedia/commons/thumb/0/08/EmacsIcon.svg/48px-EmacsIcon.svg.png"))
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1