Exifは、カメラでの撮影時にその時の状況などを写真へ付加する情報です。
これを応用することでいつどこで撮影したかや、カメラのシャッタースピードやISO感度なんかも記録されているので、後でそれを元に写真を加工したりと便利な面もある一方で、何のカメラを使っているかやいつどこに行って撮影したかという情報からプライバシーが侵害される危険性もあったりします。
少し前に、芸能人がブログにアップした画像から、何の携帯を使っているかとかがリスト化されて問題になっていたりもしました。
そういったことから写真の情報をネットに公開する際には、Exifを削除してから公開することが望ましいわけですが、個人で加工したりするのは面倒であったりもしますし、Webサービス側もそういった利用者のプライバシーを保護する目的でアップされた画像からExifを削除するというようなことが必要になってきたりもします。
というわけで、Linux上でコマンドラインから画像ファイルのExif情報を読み取ったり削除することは出来ないかと調べてみたら幾つかコマンドがあるようなのでまとめてみました。
なお、インストール等の情報はCentOS5.7をベースに書いています。
jheadコマンドの使い方
jheadコマンド を使えば、コマンドラインから一発で画像ファイルのExifを読み取ったり削除するということが可能です。
インストール方法は、ソースファイルをサーバー上に展開して、
$ make $ su - # make install
をするだけです。
これで、jheadコマンドが利用可能になっています。
まずは、Exifの情報を表示してみます。
$ jhead hoge.jpg File name : hoge.jpg File size : 127534 bytes File date : 2011:10:10 23:33:14 Camera make : Apple Camera model : iPhone 4 Date/Time : 2011:10:09 19:36:23 Resolution : 478 x 640 Flash used : No Focal length : 3.8mm Exposure time: 0.067 s (1/15) Aperture : f/2.8 ISO equiv. : 1000 Whitebalance : Auto Metering Mode: pattern Exposure : program (auto) GPS Latitude : N 35d 39.61m 0s GPS Longitude: E 139d 43.87m 0s
上記の情報からもわかるように、iPhone4で2011/10/09の19時36分に撮影した情報だとわかります。
また、iPhoneで撮影するとGPSの情報も記録されるので、緯度経度からどこで撮影したものかもわかってしまいます。(この画像は六本木ヒルズを撮影したものです)
$ jhead -v hoge.jpg
と実行すればより多くの情報を見ることもできます。
続いて、Exifを削除する方法ですが、
$ jhead -purejpg hoge.jpg Modified: hoge.jpg $ jhead hoge.jpg File name : hoge.jpg File size : 126810 bytes File date : 2011:10:10 23:33:14 Resolution : 478 x 640
上記のように「-purejpg」オプションを付けて実行します。
その後、再度jheadコマンドを実行していますがファイルサイズや画像サイズ以外の余計な情報は全て削除されていることがわかります。
割愛しますが、jheadコマンドはこの他にも豊富なオプションが用意されており、画像をローテーションさせたり撮影日時のファイル名へ一括でリネームしたりすることも出来ます。
exiftoolの使い方
exiftool はjheadコマンド同様にコマンドラインから画像ファイルのExif情報を簡単に操作することが出来ます。
インストール方法は、サーバー上でソースファイルを展開した後に、下記のような感じでビルドします。
$ perl Makefile.PL $ make $ su - # make install
exiftoolもコマンドラインから簡単にExif情報を読み取ることが可能です。
$ exiftool hoge.jpg ExifTool Version Number : 8.66 File Name : hoge.jpg Directory : . File Size : 125 kB File Modification Date/Time : 2011:10:11 00:13:57+09:00 File Permissions : rw-r--r-- File Type : JPEG MIME Type : image/jpeg Exif Byte Order : Little-endian (Intel, II) Make : Apple Camera Model Name : iPhone 4 X Resolution : 72 Y Resolution : 72 Resolution Unit : inches Software : 4.3.5 Modify Date : 2011:10:09 19:36:23 Y Cb Cr Positioning : Centered Exposure Time : 1/15 F Number : 2.8 Exposure Program : Program AE ISO : 1000 Exif Version : 0221 Date/Time Original : 2011:10:09 19:36:23 Create Date : 2011:10:09 19:36:23 Components Configuration : -, -, -, Y Shutter Speed Value : 1/15 Aperture Value : 2.8 Metering Mode : Multi-segment Flash : Off, Did not fire Focal Length : 3.9 mm Flashpix Version : 0100 Color Space : sRGB Exif Image Width : 1936 Exif Image Height : 2592 Sensing Method : One-chip color area GPS Latitude Ref : North GPS Longitude Ref : East GPS Time Stamp : 12:15:40 GPS Img Direction Ref : True North GPS Img Direction : 168.5023041 Subject Area : 1295 967 699 696 Exposure Mode : Auto White Balance : Auto Scene Capture Type : Standard Sharpness : Soft Image Width : 478 Image Height : 640 Encoding Process : Baseline DCT, Huffman coding Bits Per Sample : 8 Color Components : 3 Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2) Aperture : 2.8 GPS Latitude : 35 deg 39' 36.60" N GPS Longitude : 139 deg 43' 52.20" E GPS Position : 35 deg 39' 36.60" N, 139 deg 43' 52.20" E Image Size : 478x640 Shutter Speed : 1/15 Focal Length : 3.9 mm Light Value : 3.6
jheadコマンドに比べてデフォルト表示する情報が多くなっています。 (読み取れる情報は一緒ですが)
特定の項目だけを見たい場合は、オプションに指定すればその情報だけを表示できます。
$ exiftool -Make -Model hoge.jpg Make : Apple Camera Model Name : iPhone 4
Exifの削除時には、「-all=」オプションを使います。
$ exiftool -all= hoge.jpg 1 image files updated $ exiftool hoge.jpg ExifTool Version Number : 8.66 File Name : hoge.jpg Directory : . File Size : 124 kB File Modification Date/Time : 2011:10:11 00:18:54+09:00 File Permissions : rw-r--r-- File Type : JPEG MIME Type : image/jpeg Image Width : 478 Image Height : 640 Encoding Process : Baseline DCT, Huffman coding Bits Per Sample : 8 Color Components : 3 Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2) Image Size : 478x640
表示する項目は多いですが、Exifに含まれる情報は綺麗さっぱり削除されています。
こちらも非常に多くのオプションが用意されているので「man exiftool」で確認してみてください。
ImageMagickを使ってExifの表示・削除を行う
画像の加工に定評のあるImageMagickですが、Exifの表示や削除も行うことが出来ます。
インストールは、パッケージが用意されているのでyumコマンド経由で行うのが簡単です。
# yum search ImageMagick -snip- ImageMagick.x86_64 : 画像の表示/処理用の X アプリケーション -snip- # yum install ImageMagick.x86_64
ImageMagicでExif情報を表示するには、identifyコマンドを使います。
$ identify -verbose hoge.jpg Image: hoge.jpg Format: JPEG (Joint Photographic Experts Group JFIF format) Class: DirectClass Geometry: 478x640 Type: TrueColor Endianess: Undefined Colorspace: RGB Channel depth: Red: 8-bits Green: 8-bits Blue: 8-bits Channel statistics: Red: Min: 0 (0) Max: 255 (1) Mean: 55.9857 (0.219552) Standard deviation: 69.9776 (0.274422) Green: Min: 0 (0) Max: 255 (1) Mean: 53.1425 (0.208402) Standard deviation: 67.0988 (0.263133) Blue: Min: 0 (0) Max: 255 (1) Mean: 49.6519 (0.194713) Standard deviation: 64.7818 (0.254046) Colors: 37673 Rendering intent: Undefined Resolution: 72x72 Units: PixelsPerInch Filesize: 1.2e+02kb Interlace: None Background color: white Border color: #DFDFDF Matte color: grey74 Page geometry: 478x640+0+0 Dispose: Undefined Iterations: 0 Compression: JPEG Quality: 96 Orientation: Undefined JPEG-Colorspace: 2 JPEG-Sampling-factors: 2x2,1x1,1x1 Signature: ad46060cb05ff394947cb7775054a47111c1cf7e7b01da6efd3c71fb8a654a2b Profile-exif: 738 bytes 0x00000000: 78696600 0049492a 00080000 000f000f 01020006 Exif--II*----------- 0x00000190: 000000c2 00000010 01020009 000000c8 0000001a -------------------- 0x00000320: 01050001 000000d2 0000001b 01050001 000000da -------------------- 0x000004b0: 00000028 01030001 00000002 004d0131 01020006 ----(---------M-1--- 0x00000640: 000000e2 00000032 01020014 000000e8 00000013 --------2----------- 0x000007d0: 02030001 00000001 004d0169 87040001 00000004 ----------M-i------- 0x00000960: 01000025 88040001 00000032 02000014 92030004 ----%-------2------- 0x00000af0: 000000fc 00000002 a4030001 00000000 004d0103 ------------------M- 0x00000c80: a4030001 00000000 00000006 a4030001 00000000 -------------------- 0x00000e10: 0008000a a4030001 00000001 00000000 00000041 -------------------- 0x00000fa0: 70706c65 00695068 6f6e6520 34007f48 00000001 Apple-iPhone 4--H--- 0x00001130: 00000048 00000001 00000034 2e332e35 00323031 ----H-------4.3.5-20 0x000012c0: 313a3130 3a303920 31393a33 363a3233 000f05c7 11:10:09 19:36:23--- 0x00001450: 03bb02b8 0212009a 82050001 000000e2 0100009d -------------------- 0x000015e0: 82050001 000000ea 01000022 88030001 00000002 ------------"------- 0x00001770: 00000027 88030001 000000e8 03000000 90070004 ----'--------------- 0x00001900: 00000030 32323103 90020014 000000f2 01000004 ----0221------------ 0x00001a90: 90020014 00000006 02000001 91070004 00000000 -------------------- 0x00001c20: 00000101 920a0001 0000001a 02000002 92050001 -------------------- 0x00001db0: 00000022 02000007 92030001 00000005 00000009 ----"--------------- 0x00001f40: 92030001 00000010 0000000a 92050001 0000002a -------------------- 0x000020d0: 02000000 a0070004 00000030 31303001 a0030001 *-----------0100---- 0x00002260: 00000001 00000002 a0040001 00000090 07000003 -------------------- 0x000023f0: a0040001 00000020 0a000017 a2030001 00000002 -------- ----------- 0x00002580: 00000000 00000001 0000000f 0000000e 00000005 -------------------- 0x00002710: 00000032 3031313a 31303a30 39203139 3a33363a ----2011:10:09 19:36 0x000028a0: 32330032 3031313a 31303a30 39203139 3a33363a :23-2011:10:09 19:36 0x00002a30: 32330019 130000e2 040000b9 100000a1 0500004d :23----------------- 0x00002bc0: 00000014 00000007 00010002 00020000 004e0077 M-----------------N- 0x00002d50: 4a020005 00030000 008c0200 00030002 00020000 wJ------------------ 0x00002ee0: 004500e4 f2040005 00030000 00a40200 00070005 --E----------------- 0x00003070: 00030000 00bc0200 00100002 00020000 00540000 ------------------T- 0x00003200: 00110005 00010000 00d40200 00000000 00230000 ------------------#- 0x00003390: 00010000 00790f00 00640000 00000000 00010000 ------y---d--------- 0x00003520: 008b0000 00010000 00231100 00640000 00000000 ----------#---d----- 0x000036b0: 00010000 000b0000 00010000 00090000 00010000 -------------------- 0x00003840: 00a00f00 00010000 00d58e00 00d90000 0000 ------------------ Make: Apple. Model: iPhone 4. X Resolution: 72/1 Y Resolution: 72/1 Resolution Unit: 2 Software: 4.3.5. Date Time: 2011:10:09 19:36:23. Y Cb Cr Positioning: 1 Exif Offset: 260 Exposure Time: 1/15 F Number: 14/5 Exposure Program: 2 ISO Speed Ratings: 1000 Exif Version: 0221 Date Time Original: 2011:10:09 19:36:23. Date Time Digitized: 2011:10:09 19:36:23. Components Configuration: .... Shutter Speed Value: 4889/1250 Aperture Value: 4281/1441 Metering Mode: 5 Flash: 16 Focal Length: 77/20 Flash Pix Version: 0100 Color Space: 1 Exif Image Width: 1936 Exif Image Length: 2592 Sensing Method: 2 GPS Info: 562 Subject Area: 1295 Exposure Mode: 0 White Balance: 0 Scene Capture Type: 0 Sharpness: 1 Tainted: False Version: ImageMagick 6.2.8 10/20/10 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html
こちらも非常に多くの情報が表示されますので、必要があれば特定の項目だけを表示するという方がよいかもしれません。
$ identify -format "%[EXIF:Make] %[EXIF:Model]" hoge.jpg Apple. iPhone 4.
指定オプションの詳細は、公式のマニュアル を参照してください。
最後に、ImageMagicでExifを削除する方法ですが、この場合はconvertコマンドを利用します。
$ convert -strip hoge.jpg foo.jpg Image: foo.jpg Format: JPEG (Joint Photographic Experts Group JFIF format) Class: DirectClass Geometry: 478x640 Type: TrueColor Endianess: Undefined Colorspace: RGB Channel depth: Red: 8-bits Green: 8-bits Blue: 8-bits Channel statistics: Red: Min: 0 (0) Max: 255 (1) Mean: 55.964 (0.219467) Standard deviation: 69.9302 (0.274236) Green: Min: 0 (0) Max: 255 (1) Mean: 53.1362 (0.208377) Standard deviation: 67.0765 (0.263045) Blue: Min: 0 (0) Max: 255 (1) Mean: 49.644 (0.194682) Standard deviation: 64.7416 (0.253889) Colors: 37420 Rendering intent: Undefined Resolution: 72x72 Units: PixelsPerInch Filesize: 1.2e+02kb Interlace: None Background color: white Border color: #DFDFDF Matte color: grey74 Page geometry: 478x640+0+0 Dispose: Undefined Iterations: 0 Compression: JPEG Quality: 96 Orientation: Undefined JPEG-Colorspace: 2 JPEG-Sampling-factors: 2x2,1x1,1x1 Signature: ccde99cc75db274980e81d7683c39850db9d6ed5e147f2a2e3b5717982c0ddc5 Tainted: False Version: ImageMagick 6.2.8 10/20/10 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html
Exif情報の表示する項目は違うものの、削除に関しては同様のことができるので環境に合わせて使えるものを使ってみるということでもよいかもしれません。
[PR]
[PR]
関連記事
[PHP] 簡単に画像の加工ができるintervention/image
PDFを他のファイル形式に簡単に変換できるpoppler-utils
Linux上でファイルを削除してしまった際にさっくり復活できるextundelete
[PHP] pChartの使い方 - 棒グラフとレーダーチャートを描いてみる
ノンプログラミングでも利用可能!PHPで多様なグラフを作れるpChart
Webページをコマンドラインから一発でPDFや画像に変換する
ImageMagickを使ってコマンドラインからCAPTCHAを作ってみる