JPEGファイルにはサムネイル画像が含まれていて、JPEGファイルを編集しても、サムネイルが編集されてないことがあるという話。
事の発端はうぷする画像にモザイクや修正をかけてうぷしたのに、
サムネイル表示すると修正前の画像が出てくるよって話です。
これは、jpegの追加情報でExifというヘッダがあって、内部に撮影時の条件等が記録されているんだけど。
そのExifにサムネイル表示用の小さい画像が埋め込んだりされる事もあるって話ね。
んでOS標準のペイントとか機能の低いツールだとExifの情報を無視して、でもそのまま残して保存とかしたりするので。
だからサムネイル表示したりすると、前の画像が表示されたりしてしまうって話。
jpegに埋め込まれたサムネイル - useless memo
ためしに、Paint.NET V3.36 で編集して上書き保存したけど、サムネイル画像は更新されなかった。。。ひどい。
ニンテンドーDSiで撮影した写真
はずかしいからモザイクかけよう (・ω・)ノ
Paint.NETで編集した(モザイクかけた)写真
( ´∀`)よしこれでオッケー。
Paint.NETで編集した(モザイクかけた)写真のサムネイル画像
(>∇<;)キャー!
消したつもりの画像が消えていない・・・
モザイクノン モザイクノン・・・
ガクガク(((( ;゚Д゚))))ブルブル
# ちなみに、ViXでJPEGファイルを編集したら、EXIF情報とサムネイル画像が削除される。他のソフトはどうなんだろうか。。。
# もしも、サムネイル画像付ファイルだけヒットするように指定できる画像検索エンジンがあったら。。。
以下、今回のサンプルファイルそれぞれのEXIF情報など。
元ファイルのEXIF情報
$ jhead -v HNI_0004.JPG
Exif header 6758 bytes long
Exif section in Motorola order
(dir has 9 entries)
Make = "Nintendo"
Model = "NintendoDS"
XResolution = 72/1
YResolution = 72/1
ResolutionUnit = 2
Software = "JANH"
DateTime = "2009:07:18 17:25:02"
YCbCrPositioning = 2
ExifOffset = 186
Exif Dir:(dir has 10 entries)
ExifVersion = "0220"
DateTimeOriginal = "2009:07:18 17:25:02"
DateTimeDigitized = "2009:07:18 17:25:02"
ComponentsConfiguration = "?"
Maker note: 00 02 10 00 00 07 00 00 00 1c 00... (66 bytes)
FlashPixVersion = "0100"
ColorSpace = 1
ExifImageWidth = 640
ExifImageLength = 480
InteroperabilityOffset = 418
Interop Dir:(dir has 3 entries)
InteropIndex = "R98"
InteropVersion = "0100"
Unknown Tag 1000 Value = "JPEG Exif Ver 2.2"
Continued directory (dir has 6 entries)
Compression = 6
XResolution = 72/1
YResolution = 72/1
ResolutionUnit = 2
ThumbnailOffset = 572
ThumbnailLength = 6178
Thumbnail size: 6178 bytes
JPEG image is 640w * 480h, 3 color components, 8 bits per sample
Jpeg section marker 0xdb size 132
Jpeg section marker 0xc4 size 418
File name : HNI_0004.JPG
File size : 61520 bytes
File date : 2009:07:18 22:26:52
Camera make : Nintendo
Camera model : NintendoDS
Date/Time : 2009:07:18 17:25:02
Resolution : 640 x 480
Paint.NETで編集した(モザイクかけた)ファイルのEXIF情報
$ jhead -v HNI_0004M.JPG
Exif header 6726 bytes long
Exif section in Intel order
(dir has 10 entries)
Make = "Nintendo"
Model = "NintendoDS"
XResolution = 72/1
YResolution = 72/1
ResolutionUnit = 2
Software = "Paint.NET V3.36"
DateTime = "2009:07:18 17:25:02"
YCbCrPositioning = 2
Unknown Tag 1000 Value = "JPEG Exif Ver 2.2"
ExifOffset = 226
Exif Dir:(dir has 9 entries)
ExifVersion = "0220"
DateTimeOriginal = "2009:07:18 17:25:02"
DateTimeDigitized = "2009:07:18 17:25:02"
ComponentsConfiguration = "?"
Maker note: 00 02 10 00 00 07 00 00 00 1c 00... (66 bytes)
FlashPixVersion = "0100"
ColorSpace = 1
ExifImageWidth = 640
ExifImageLength = 480
Continued directory (dir has 6 entries)
Compression = 6
XResolution = 72/1
YResolution = 72/1
ResolutionUnit = 2
ThumbnailOffset = 540
ThumbnailLength = 6178
Thumbnail size: 6178 bytes
Jpeg section marker 0xdb size 67
Jpeg section marker 0xdb size 67
JPEG image is 640w * 480h, 3 color components, 8 bits per sample
Jpeg section marker 0xc4 size 31
Jpeg section marker 0xc4 size 181
Jpeg section marker 0xc4 size 31
Jpeg section marker 0xc4 size 181
File name : HNI_0004M.JPG
File size : 45901 bytes
File date : 2009:07:18 23:22:49
Camera make : Nintendo
Camera model : NintendoDS
Date/Time : 2009:07:18 17:25:02
Resolution : 640 x 480
jhead でサムネイル画像を出力
$ jhead -st HNI_0004T.JPG HNI_0004M.JPG
Created: 'HNI_0004T.JPG'
サムネイル画像のEXIF情報は無し
$ jhead -v HNI_0004T.JPG
JPEG image is 160w * 120h, 3 color components, 8 bits per sample
Jpeg section marker 0xdb size 132
Jpeg section marker 0xc4 size 418
File name : HNI_0004T.JPG
File size : 6178 bytes
File date : 2009:07:18 23:23:59
Resolution : 160 x 120
tags: zlashdot Security Photo Security
Posted by NI-Lab. (@nilab)