画像からExifの読取り削除するコマンドあれこれ | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

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情報の表示する項目は違うものの、削除に関しては同様のことができるので環境に合わせて使えるものを使ってみるということでもよいかもしれません。