- PR -

C# デジカメの撮影日時を取得するプログラム

投稿者投稿内容
syoshinsya
会議室デビュー日: 2005/10/19
投稿数: 3
投稿日時: 2005-10-19 11:04
今、デジカメの撮影日時を取得するプログラムを作ろうとしています。
といっても初心者なので、@ITの記事(.NET TIPS>デジカメ画像のExif情報を取得するには?)を参考にさせてもらおうと、サンプルプログラムを動かそうとしたのですが、うまく動いてくれません。

参照記事
http://www.atmarkit.co.jp/fdotnet/dotnettips/047exif/exif.html

args.Lengthに0の値が入っていて、下のif文にひっかかって、デジカメ画像を指定してくださいの文字だけ出力されて終わってしまいます。

if (args.Length <= 0) {
Console.WriteLine("デジカメ画像を指定してください。");
return;
}

とても初心者な質問だとは思いますが、デジカメの撮影日時を取得するサンプルプログラムを動かせた方いらっしゃいましたら、どうぞよろしくお願い致します。

[ メッセージ編集済み 編集者: syoshinsya 編集日時 2005-10-19 11:07 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-19 11:38
引用:

syoshinsyaさんの書き込み (2005-10-19 11:04) より:

args.Lengthに0の値が入っていて、下のif文にひっかかって、
デジカメ画像を指定してくださいの文字だけ出力されて終わってしまいます。


「コマンドライン引数」について調べてみてください。
コマンドライン引数にファイル パスを指定することで解決します。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2005-10-19 11:46
Exif情報を扱うソフトです。
http://www.vector.co.jp/soft/winnt/art/se328332.html

このツールで、上記exeから、プログラムソースを取り出せます。
http://www.vector.co.jp/soft/winnt/prog/se328340.html

参考になれば
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-10-20 05:55
 VS.NET のデバッグ環境でファイル名を指定する方法を聞いているとか?

 今、VS.NET2003 が入っている環境がないのですが、ツールメニューの[プロジェクト]→[デバッグ]で、「コマンドライン引数」を指定する欄がないですか?(VS2005 を元にしています)
___________________________________________________________________
□ written by Jitta on 2005/10/19
□ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2004-Sept.2006
_________________
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-20 08:41
引用:

Jittaさんの書き込み (2005-10-20 05:55) より:

VS.NET のデバッグ環境でファイル名を指定する方法を聞いているとか?
今、VS.NET2003 が入っている環境がないのですが、ツールメニューの[プロジェクト]→[デバッグ]で、「コマンドライン引数」を指定する欄がないですか?(VS2005 を元にしています)


VS2003 では、
 [プロジェクト] - [xxx のプロパティ] - [構成プロパティ ペイン] - [デバッグ] - [コマンド ライン引数]
にありますね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
syoshinsya
会議室デビュー日: 2005/10/19
投稿数: 3
投稿日時: 2005-10-20 12:19
じゃんぬねっとさん、catsさん、Jittaさん、返信ありがとうございます。

>じゃんぬねっとさん
デジカメの画像を指定することができ、最後までプログラムが動きました!ありがとうございます。

>catsさん
こんな便利なフリーソフトがあるんですね。参考にさせていただきます!

>Jittaさん
Visual C# 2005 Express Edition Bata 2を使っています。コマンドライン引数について知らなかったもので・・・プログラムが動かない理由すらわからなかったんです(^^;



返信、遅れてすみません。ただ返信が遅れたのには理由がありましてプログラムは動いたのですが、肝心の撮影日時を取得できなくて、昨日からずっと考えてました・・。

でも今やっと撮影日時の取得に成功しました・・・!なんで成功したのか原因は不明ですが^^;

みなさん、どうもありがとうございました!
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-20 12:30
ごめんなさい、少し気になるので...

引用:

syoshinsyaさんの書き込み (2005-10-20 12:19) より:

なんで成功したのか原因は不明ですが^^;


コマンド ライン引数を指定していなかったがために、最初のチェックで終了していたものが、
正しく指定することで先の処理へ遷移できたから「成功」したのではないのでしょうか?

それだけではダメだった、ということでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
syoshinsya
会議室デビュー日: 2005/10/19
投稿数: 3
投稿日時: 2005-10-20 13:25
いえいえ。こちらとしても聞いてもらえるとありがたいです。

問題はif文の後の部分です。

if (args.Length <= 0) {
Console.WriteLine("デジカメ画像を指定してください。");
return;
}

string oldName = args[0];

Bitmap bitmap = new Bitmap(oldName);

int[] pils = bitmap.PropertyIdList;


エラーではないみたいなんですけど、Bitmap bitmap = new Bitmap(oldName);の部分が"ArgumentExceptionはハンドルされませんでした。"と表示されて、デバック中にプログラムが動かなくなっちゃうんですよね・・・。
さっきやったときは撮影日時でリネームできたんですけど、今またデバックしたら動かなくなったりで。
これはちょっと解決させなきゃまずいですよね・・。

スキルアップ/キャリアアップ(JOB@IT)