C#でExif情報編集 (ExifからCanonカメラのシリアル番号削除)

| トラックバック(0)
「おてがる画像変換」で変換したときに、変換前の画像のExif情報を
変換後の画像に引き継ぎたかったため、C#でExif情報を編集する方法を調べてみました。

■サンプルプログラム1
 JPEG画像を開いてExif情報をテキストとして出力し、
 画像の「作成者」の項目を変更して、別名で保存するだけの
 サンプルを作成してみましたので、アップロードしておきます。
 (Visual Strudio2005のプロジェクトです)
 http://www.bird-soft.net/download/testExif.zip

これができると、Exif情報をプログラムから変更できるので便利です。

例えば、Canonのカメラで撮影した画像にはExifにカメラのシリアルNo.(製造番号)が
埋め込まれてしまいます。

実害はないはずですが、カメラ固有の情報がExif情報にのってしまうというのが
写真を公開する際には若干気になります。

しかし、Exif情報をすべて削除してしまうと、シャッター速度やISO感度などの
情報が消えてしまうので、不便を感じることもありました。

そこで、拙作フリーソフト「おてがる画像変換( Ver0.3.3β)」にシリアルNo.削除の機能をつけてみました。
同じ悩みのある人はぜひ試してみてください。
http://www.bird-soft.net/ImageConverter.html#DL

※Canon EOS Kiss X3の場合にうまく動作することを確認しましたが、
 機種や撮影条件によりExifの記録内容が違えばうまく動かないです
 その場合、この機能は使用しないでください。
 Canon独自タグが壊れてしまいます。

※Exif情報のカメラメーカー(Id:271)が"Canon" で
 かつId:37500(0x927c)がある場合、この機能は動作します

★参考サイト、CanonのExifからカメラのシリアル番号削除するコードは続きから
---
C#でExif情報を編集するには、以下のサイトが参考になりました

■参考サイト
・Exif情報のC#での操作解説がわかりやすい
 情報科学屋さんを目指す人のメモ C#(.NET)でJPEGファイルのExifを読み取る方法
 http://did2.blog64.fc2.com/blog-entry-106.html

・具体的なコードは以下サイトがよいです
 画像のExif情報を取得する、設定する: .NET Tips: C#, VB.NET, Visual Studio  http://dobon.net/vb/dotnet/graphics/getexifinfo.html

・Canon の独自タグについてはこちらのサイト
 http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Canon.html

CanonのExifからカメラのシリアル番号を削除するコードは
具体的には上記のサンプルプログラム1を改造して、以下のようなコードにしました。
◆コード(上記のサンプルプログラム1から、button1_Clickの部分のみ抜粋)

他の項目も同様に編集すればできると思います。
ただ、メーカー独自のExifはいまだに効率のよい編集方法がわかりません。。。

メーカー独自タグはバイト列が並んでいるだけなので、構成がわからないと 閲覧・編集ができません。
しかし、メーカー独自タグは構成が公開されていないので、
手探りで変更してみるしかなさそうです。

トラックバック(0)

トラックバックURL: http://www.bird-soft.net/mt5/mt-tb.cgi/339

最近のブログ記事

お知らせ
[お知らせ] ・その1  Movable…
CANON EOS 7D レビュー
新しい一眼レフ「EOS 7D」を買いまし…
コスモス畑
先週、あけぼの山農業公園のコスモス畑に行…