[Mew-dist 16319] Re: インライン画像
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2001年 2月 14日 (水) 19:50:43 JST
From: Jun-ichiro itojun Hagino <itojun at example.com> さん曰く
Subject: [Mew-dist 16317] Re: インライン画像
Message-ID: <20010214095015.57F157E9F at example.com>
Date: Wed, 14 Feb 2001 18:50:23 +0900
itojun> >具体的には、Microsoft Outlook Express 5.00.2014.211 で添付された jpeg
itojun> >画像です。同じ人から受け取った添付メールにも関わらず、きちんと描写され
itojun> >る画像とそうでない画像があります。
itojun> >前述の白い四角が写る場合、Emacs 21 を起動した端末に:
itojun> > memory_source: Not a TIFF file, bad magic number 55551 (0xd8ff).
itojun> >とエラーが出力されます。写る画像とダメな画像をセーブして file(1) して
itojun> >みると:
itojun> > dame.jpg: JPEG image data
itojun> > yoi.jpg: JPEG image data, JFIF standard
itojun> >となっています。
itojun>
itojun> emacs21の内部構造は知りませんが、JFIF APP0 tagを要求しているのだと
itojun> すると、jpeg画像一般を判定する条件としてはちょっと厳しすぎます。
itojun> (あたまが0xff 0xd8ならなんでもアリのはず)
というか、0xff d8 (SOI) を
itojun> > memory_source: Not a TIFF file, bad magic number 55551 (0xd8ff).
0xd8ff と思っている段階で問題があるような気がします。
10進で 55551 って出しているということは、どっかで、エンディアン
が狂っているのですよね。0xffd8 なら JPEG だと思ってくれるんじゃ
ないのかな?
..............
で、memory_source 周辺を見ても、全然わからなかったので、僕の
Emacs-21.0.97 の image.el を見ると、
(defconst image-type-regexps
'(("^/\\*.*XPM.\\*/" . xpm)
("^P[1-6]" . pbm)
("^GIF8" . gif)
("JFIF" . jpeg)
("^\211PNG\r\n" . png)
("^#define" . xbm)
("^\\(MM\0\\*\\)\\|\\(II\\*\0\\)" . tiff)
("^%!PS" . ghostscript))
になっていて、確かに 0xffd8 ではじまっている data を自動的には
JPEG と見なしてくれないようです。実験した JPEG Data では JFIF で
引っ掛かっても良いような気もするのですが、その辺は良くわかりませ
んでした。というわけで、簡単な方向に逃げて、
(eval-after-load "image"
'(setq image-type-regexps
(cons (cons "^\377\330\377\340" 'jpeg) image-type-regexps)))
とすると、使用前は 白い四角だったけど、使用後は画像データを表示
することが出来ました。
itojun> > memory_source: Not a TIFF file, bad magic number 55551 (0xd8ff).
だけど、私の場合、このエラーは出なかった。
itojun> 例えば、Exif規格のデジカメ画像も全滅ではないですか?
## デジカメ系は全然しらないのでパス。^^;;;
--
白井秀行 (mailto:shirai at example.com)
Mew-dist メーリングリストの案内