IE5.5で不具合を引き起こすJPEGはInternet Explorer5.5で読み込むと不具合を起こすjpegファイル。
目次
概要[]
Macintosh版Photoshop(7.0以降)、及びPhotoshop Elements(2.0以降)で「別名で保存」で作成されたpsd・jpeg・tiffには「com.apple.print.ticket.creator」という文字列を含む異様に長いxmpメタデータ(7kb程、プロパティリスト?)が付加される(Windows版では付加されない)。この画像を含むページ(画像掲示板やブログのサムネイル画像、TwitterやFacebook等のアイコン用画像に多い)をInternet Explorer5.5(Windows)で読み込もうとすると、それ以降、どのページを開いても(再起動するまで)画像が表示されない、という不具合を引き起こす(6.0以降では起きない)。Macintoshに於いても2002年頃の「ビューワ」(Finderの機能の1つ)で正常に表示されない、という不具合が起きる。尚、「Web用に保存」「ImageReadyから保存」を行なうとメタデータが極最小限となる(「Adobe」「Ducky」という文字列を含む短いメタデータ)。
不具合を引き起こすファイルの特徴[]
但し、異様に長いxmpメタデータを含むからと言って全てのファイルが不具合を起こすとは限らない。それぞれのファイルの特徴を示す(異常なファイルは正常なファイルを元にサーバーが作成したものとみられるサムネイル画像)(解析結果はJpegAnalyzer Plus1.42を使用)。
異常なファイル[]
Analyze Start. File name = ????.jpg File Size 21,999 bytes / Address (00000000-000055EE) File Path ?:\???\???\ Address Length Message 00000000 ****** SOI :Start Of Image ****** 00000002 [0010] APP0 :JPEG File Interchange Format Ver 1.1 (JFIF) 密度 72:72 dots/inch 00000014 [2F3C] APP13:Photoshop Image Resource Block(IRB) Count = 20 0000237E-00002EDB Thumbnail Block 2,910 bytes 00002F52 [0C70] APP1 :Exchangeable image file format (Exif) 00002F64-00002FBD 0th IFD Tag = 7 00002FF8-00003021 Exif IFD Tag = 3 00003024-00003071 1st IFD Tag = 6 00003082-00003BC3 Thumbnail 00003BC4 [1248] APP1 :Adobe XMP metadata packet 00004E0E [0043] DQT :Define Quantization Table 00004E12 QT0-8bit IJG-QT0-75 00004E53 [0043] DQT :Define Quantization Table 00004E57 QT1-8bit IJG-QT1-75 00004E98 [0011] SOF0 :Start Of Frame 0 - Baseline DCT 128[0] x 128[0] pixel - 24bit color (YCbCr 4:2:0) ComponentID-01 Y 2x2 QT0 ComponentID-02 Cb 1x1 QT1 ComponentID-03 Cr 1x1 QT1 00004EAB [001C] DHT :Define Huffman Table 00004EAF HT0-DC CRC-CFF76D65 00004EC9 [0037] DHT :Define Huffman Table 00004ECD HT0-AC CRC-BDD4F42C 00004F02 [001B] DHT :Define Huffman Table 00004F06 HT1-DC CRC-77AFCDEE 00004F1F [0029] DHT :Define Huffman Table 00004F23 HT1-AC CRC-E2F2737F 00004F4A [000C] SOS :Start Of Scan 0-63[00] HT Selector[DC/AC] Y[0/0] Cb[1/1] Cr[1/1] 00004F58 ****** Image Data ****** Data Size 1,685 bytes 000055ED ****** EOI :End Of Image ****** Analyze End.
正常なファイル[]
Analyze Start. File name = ????.jpg File Size 26,493 bytes / Address (00000000-0000677C) File Path ?:\???\???\ Address Length Message 00000000 ****** SOI :Start Of Image ****** 00000002 [0010] APP0 :JPEG File Interchange Format Ver 1.2 (JFIF) 密度 72:72 dots/inch 00000014 [0C70] APP1 :Exchangeable image file format (Exif) 00000026-0000007F 0th IFD Tag = 7 000000BA-000000E3 Exif IFD Tag = 3 000000E6-00000133 1st IFD Tag = 6 00000144-00000C85 Thumbnail 00000C86 [2F3C] APP13:Photoshop Image Resource Block(IRB) Count = 20 00002FF0-00003B4D Thumbnail Block 2,910 bytes 00003BC4 [1248] APP1 :Adobe XMP metadata packet 00004E0E [000E] APP14:Adobe segment Ver.100 Flags [80000000] Transform = 1 YCbCr色空間 00004E1E [0084] DQT :Define Quantization Table 【Photoshop 画質5 小】 00004E22 QT0-8bit AdobeQT0-05 00004E63 QT1-8bit AdobeQT1-05 00004EA4 [0011] SOF0 :Start Of Frame 0 - Baseline DCT 300[4] x 300[4] pixel - 24bit color (YCbCr 4:2:0) ComponentID-01 Y 2x2 QT0 ComponentID-02 Cb 1x1 QT1 ComponentID-03 Cr 1x1 QT1 00004EB7 [0004] DRI :Define Restart Interval (MCU blocks=19) 00004EBD [013F] DHT :Define Huffman Table 【Photoshop 画質3-5(IR11-40)】 00004EC1 HT0-DC PS35輝度DC 00004EDE HT1-DC PS35色差DC 00004EFB HT0-AC PS35輝度AC 00004F7E HT1-AC PS35色差AC 00004FFE [000C] SOS :Start Of Scan 0-63[00] HT Selector[DC/AC] Y[0/0] Cb[1/1] Cr[1/1] 0000500C ****** Image Data ****** Data Size 5,999 bytes 0000677B ****** EOI :End Of Image ****** Analyze End.
メタデータの内容[]
異常・正常・共に同じ(但し異常な方にはAPP14が入らない)
- APP1
- Exif
Exif Information Filename = ????.jpg Filesize = 26,493 bytes 0000001E TIFF header 4D4D002A00000008 big endian (モトローラ) 00000026-0000007F 0th IFD Tag-7 Next IFD 000000E6 (Value-000000C8) 00000028 0112 画像方向 先頭の行が上、列が左(回転なし) 00000034 011A 画像の幅の解像度 72 00000040 011B 画像の高さの解像度 72 0000004C 0128 画像の幅と高さの解像度の単位 インチ(dpi) 00000058 0131 使用ソフトウェア名 Adobe Photoshop 7.0 00000064 0132 ファイル変更日時 20??:??:?? ??:??:?? 00000070 8769 Exif IFDへのポインタ 000000BA (Value-0000009C) 000000BA-000000E3 Exif IFD Tag-3 000000BC A001 色空間情報 sRGB以外 000000C8 A002 実効画像幅 300 000000D4 A003 実効画像高さ 300 000000E6-00000133 1st IFD Tag-6 000000E8 0103 圧縮種類 JPEG圧縮 000000F4 011A 画像の幅の解像度 72 00000100 011B 画像の高さの解像度 72 0000010C 0128 画像の幅と高さの解像度の単位 インチ(dpi) 00000118 0201 サムネイルへのポインタ 00000144 (Value-00000126) 00000124 0202 サムネイルのバイト数 2,882 bytes 300x300(1:1) Exif Information end.
- APP13
- Photoshop IRB
Photoshop IRB Information Filename = ????.jpg Filesize = 26,493 bytes Address ID Len Message 00000CA4 0425 0010 --- 不明なリソース --- 00000CC0 03EA 1DA6 XMPプリント情報 00002A72 03E9 0078 Macintosh Print Manager 印刷情報 00002AF6 03ED 0010 解像度情報 (72dpi×72dpi) 00002B12 0426 000E --- 不明なリソース --- 00002B2C 040D 0004 Global Angle 00002B3C 0419 0004 Global Altitude 00002B4C 03F3 0009 プリントフラグ (0000 0000 0000 0000 01) 00002B62 040A 0001 著作権フラグ (OFF) 00002B70 2710 000A プリントフラグ情報 (0001 0000 0000 0000 0002) 00002B86 03F5 0048 カラー中間調情報 00002BDA 03F8 0070 カラー変換設定 00002C56 0408 0010 GridGuides情報 00002C72 041E 0004 URLリスト 00002C82 041A 0343 Slices 00002FD2 0411 0001 ICC Untagged 00002FE0 0414 0004 ドキュメントスペックID (00000003) 00002FF0 040C 0B5E サムネイル (kJpegRGB 128x128 0000300C-00003B4D) 00003B5A 0421 0055 バージョン情報 (Version=1 FileVersion=1) Writer = Adobe Photoshop Reader = Adobe Photoshop 7.0 00003BBC 0406 0007 JPEG画質設定 (画質5 標準圧縮) Photoshop IRB Information end.
- APP1
- Adobe XMP metadata packet
これは後の方なので不具合の原因にならない(Windows版で作成されたファイルにも入る)
http://ns.adobe.com/xap/1.0/ <?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?> <?adobe-xap-filters esc="CR"?> <x:xapmeta xmlns:x="adobe:ns:meta/" x:xaptk="XMP toolkit 2.8.2-33, framework 1.5"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:iX="http://ns.adobe.com/iX/1.0/"> <rdf:Description about="uuid:11b68f84-6ed6-11d8-b06d-d166e9dda74b" xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/"> <xapMM:DocumentID> adobe:docid:photoshop:e23922a3-6ed5-11d8-b06d-d166e9dda74b </xapMM:DocumentID> </rdf:Description> </rdf:RDF> </x:xapmeta> <?xpacket end='w'?>
- XMPプリント情報
これこそが不具合の原因(Windows版で作成されたファイルには入らない)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.print.PageFormat.PMHorizontalRes</key> <dict> <key>com.apple.print.ticket.creator</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.itemArray</key> <array> <dict> <key>com.apple.print.PageFormat.PMHorizontalRes</key> <real>72</real> <key>com.apple.print.ticket.client</key> <string>com.apple.printingmanager</string> <key>com.apple.print.ticket.modDate</key> <date>20??-??-??T??:??:??Z</date> <key>com.apple.print.ticket.stateFlag</key> <integer>0</integer> </dict> </array> </dict> ~~中略~~ <key>com.apple.print.ticket.APIVersion</key> <string>00.20</string> <key>com.apple.print.ticket.privateLock</key> <false/> <key>com.apple.print.ticket.type</key> <string>com.apple.print.PageFormatTicket</string> </dict> </plist>
考察[]
上記の様に、APP13:Photoshop IRBの初めの方に「XMPプリント情報」(プロパティリスト?)が収録されてる。正常なファイルではAPP1:Exifの方が先に来る事によって不具合が回避されてるのに対し、異常なファイルではAPP13:Photoshop IRBが先に来る(つまり「XMPプリント情報」がファイルの冒頭付近に来る)事、又、それをIE5.5が解釈しようとする事によって不具合が引き起こされる。又、正常なファイルでは本体イメージデータ部分がAdobe形式なのに対し、異常なファイルでは本体イメージデータ部分がIJG形式である(Adobe形式ではない)事が判る。この事から、正常なファイルはPhotoshop、又はPhotoshop Elementsで作成されたものに対し、異常なファイルは、正常なファイルを元に、Adobe製以外の画像ソフトで作成された、又はサーバーが、送信されたファイルを元に作成したサムネイル・プレビュー画像(作成時にAPP1とAPP13の順番を入れ替え、APP14を削除、それ以外のメタデータを存置)と見られる。
対策[]
送信者側[]
送信者はMacintoshのユーザーと見られるので、HP・ブログ・SNS等で使う画像をPhotoshopやPhotoshop Elementsで作成する時には「Web用に保存」を使う事が望ましい。「別名で保存」で作成済みの画像に対してはImageOptim(Macintosh用フリーソフト)を使って、その様なメタデータを削除し、画質を劣化させずに画像データを軽量化・最適化した後、(再度)送信する事が望ましい(gif、pngにも有効)(WindowsではIrfanViewを推奨)。特に、TwitterやFacebook用にPhotoshopやPhotoshop Elementsで「別名で保存」で作ったアイコン用画像に対して実行するとデータが驚くほど小さく、軽くなる。デジタルカメラや携帯電話、スマートフォンで撮影した画像をPC経由でネットに公開する場合にも、これを使うとデータが若干(サイトが自動作成するサムネイル画像は大幅に)軽くなる。又、メタデータが原因の不具合も回避される。
サーバー側[]
サムネイル画像やプレビュー画像を作成する処理に於いてAPP0:JFIF以外のメタデータを全て削除する事が望ましい。特にサムネイル画像やAPP2:ICC Profileは重い一方でブラウザ(Safari以外)での表示には不要である。