[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: inline image



>> On Wed, 07 Mar 2001 17:03:36 +0900
>> 「寺」== teranisi@gohome.org (Yuuichi Teranishi) said as follows:

土> 単純に <img_alt> を置換するのではなく、その周辺に配置されている空白の
土> 矩形の空間を置換するようにすれば、よりそれらしい結果が得られそうな気が
土> するのですが、どうでしょうか?

寺> 左右の空白くらいなら置換できそうですが、
寺> 矩形の空間を image に置換するというのは Emacs/XEmacs では
寺> 難しいんではないですかね?

そうですね…。その処理をしているために W3 は遅いのかもしれませんね。

画像が出るのがあんまり面白いので、浮かれて、ちょっと遊んだ動作画面を作っ
てみました。

    http://namazu.org/~tsuchiya/emacs-w3m/w3m-vs-w3.png

どちらが本物でしょうか?


土> それから、私の個人ページ[*]のカウンタは崩れてしまうのですが、これはカ
土> ウンタが悪いのでしょうか。

寺> make-image-instance で autodetect を指定すると
寺> 画像型を類推してくれるのかと思ったんですが、違うみたいですね。
寺> 次パートのように真面目にヘッダ情報から画像型を取り出すと動くようです。

寺> とりあえず、これ commit しときました。

検討してみたのですが、w3m-retrieve が content-type を返す仕様になって
いることを利用して、以下のように修正すると、ヘッダのチェックにかかる時
間が短縮できると思います。ただ、私の手元では Emacs21 についての動作確
認ができませんので、commit はしていません。
Index: w3m.el
===================================================================
RCS file: /storage/cvsroot/emacs-w3m/w3m.el,v
retrieving revision 1.73
diff -u -u -r1.73 w3m.el
--- w3m.el	2001/03/07 10:46:03	1.73
+++ w3m.el	2001/03/07 11:15:37
@@ -1038,13 +1038,13 @@
 		    (>= emacs-major-version 21)) (progn    
 (defun w3m-create-image (url)
   "Retrieve data from URL and create an image object."
-  (w3m-retrieve url t)
-  (with-current-buffer  (get-buffer-create w3m-work-buffer-name)
-    (create-image (buffer-string) 
-		  (cdr (assoc (w3m-local-content-type url)
-			      w3m-image-type-alist))
-		  t
-		  :ascent 'center)))
+  (let ((type (w3m-retrieve url t)))
+    (when type
+      (with-current-buffer (get-buffer-create w3m-work-buffer-name)
+	(create-image (buffer-string) 
+		      (cdr (assoc type w3m-image-type-alist))
+		      t
+		      :ascent 'center)))))
 
 (defun w3m-insert-image (beg end image)
   "Display image on the current buffer.
@@ -1058,17 +1058,17 @@
 (w3m-static-if (featurep 'xemacs) (progn
 (defun w3m-create-image (url)
   "Retrieve data from URL and create an image object."
-  (w3m-retrieve url t)
-  (let ((data (with-current-buffer (get-buffer-create w3m-work-buffer-name)
-		(buffer-string))))
-    (make-glyph
-     (make-image-instance
-      (vector (or (cdr (assoc (w3m-local-content-type url)
-			      w3m-image-type-alist))
-		  (cdr (assoc (nth 0 (w3m-w3m-check-header url))
-			      w3m-image-type-alist)))
-	      :data data)
-      nil nil 'no-error))))
+  (let ((type (w3m-retrieve url t)))
+    (when type
+      (let ((data (with-current-buffer
+		      (get-buffer-create w3m-work-buffer-name)
+		    (buffer-string))))
+	(make-glyph
+	 (make-image-instance
+	  (vector (or (cdr (assoc type w3m-image-type-alist))
+		      'autodetect)
+		  :data data)
+	  nil nil 'no-error))))))
 
 (defun w3m-insert-image (beg end image)
   "Display image on the current buffer.
-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )
    http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/