• 締切済み

【C言語】JPEGのEXIF情報を書き出す方法

どなたかJPEGのEXIF情報(例えばGPS情報)を表示する方法を教えて頂けないでしょうか? 言語はC言語で、環境はVisual C++ 2010 Express Editionを使っています。 今考えているやり方としては、 1、JPEGをバイナリデータで読み込む。 2、バイナリデータからEXIF情報を読み込む。 と思っているのですが、2番が特に分からない状況です。 ただこのやり方自体が間違っていましたら、他の方法を教えていただけますと幸いです。 宜しくお願いいたします。

みんなの回答

  • kb-nike
  • ベストアンサー率36% (72/200)
回答No.2

”C”でできるかどうかわかりませんが、 「Visual C++ 」を使っておられるのであれば、 「.NET」の「System.Drawing」名前空間の「Bitmap」クラスのプロパティ「PropertyIdList」、「PropertyItems」を使えば、 比較的に簡単に、目的の情報を取得できます。 MSDN http://msdn.microsoft.com/ja-jp/library/system.drawing.bitmap_properties(v=vs.90).aspx 等が参考になると思います。

参考URL:
http://msdn.microsoft.com/ja-jp/library/system.drawing.bitmap_properties(v=vs.90).aspx
  • wormhole
  • ベストアンサー率28% (1621/5657)
回答No.1

考え方はあってます。 2についてはEXIFのファイルフォーマットに従って読めばいいです。 EXIFのファイルフォーマットは公開されていますので、それを読み解いてください。 http://www.cipa.jp/hyoujunka/kikaku/pdf/DC-008-2010_J.pdf

関連するQ&A

  • Exif情報内のGPS情報を書き換える方法

    デジカメの写真データー(Exif)に、間違ったGPSデーターを書き込んでしまいました。 このGPSデーターを「修正」、又は「消去」したいのですが、フリーソフトが有りましたら教えてください。 前回、タイムスタンプの修正方法を教えて頂き、大変助かりました。 今回の様な、(Exif)情報に有るGPSデーターの修正ソフトは無いのでしょうか。 枚数が少ないので、ソフトが無ければ、手作業で「消去」を行う方法でも結構です。

  • Exif情報について

    Exif情報について 二度目の投稿すみません。 携帯で撮った写真のExif情報が気になっています。 携帯で撮った写真をメールでパソコンに送り、パソコン内に保存し、その後、その画像のファイルを右クリック→プロパティ→詳細の順でやると、Exif情報が見られるとのことで、試してみました。 このやり方だと、exif情報の全てが分かるわけではないようですが、少なくとも私が心配しているGPS情報が付加されているかどうかはわかります。「GPS情報を付加する」という設定をしたうえで撮った写真の時はGPSの緯度・経度みたいなのが出ました。 逆に言えば、これが出ないということは、その写真のExifにはGPS情報はないということであり、その写真をブログ等にアップしても、GPS情報を知られる心配はないと考えていいのでしょうか。 また、前述のファイルを右クリックして・・・の方法で、表示した情報には、私が画像にどういう名前を付けてパソコンに保存したのかなどもわかりますが、これもexif情報として、例えばブログにアップした場合は第三者に読み取られ得るのでしょうか? つまり、ファイルを右クリックして・・・の方法で表示された情報の全てが、第三者に読み取られ得るexif情報なのでしょうか。 仮にそうだとして、私にはGPS情報以外の中で、他人に知られると危険な情報があるのかが分かりません。あるのでしょうか?

  • C言語の違いについて

    同人でファイナルファンタジータクティクス(戦闘は立体的な3Dマップで行われる)のようなシミュレーションロールプレイングゲームを作ろうと思っています。 プログラムは初心者だったので、まず一番基本といわれているC言語を一通り勉強しました。 これから少し実践的にゲームプログラミングをしてみたいと思っていて、無料のVisual Studio 2008 Express editionをダウンロードすることにしましたが、内容が、 Visual Web Developer 2008 Express Edition Visual Basic 2008 Express Edition Visual C# 2008 Express Edition Visual C++ 2008 Express Edition と四つあります。上記のようなゲームプログラミングをするにはどれが最適なのでしょうか? C# か C++ と聞いたことがあるのですが何せ初心者ですので詳しいことがわかりません。 どなたか詳しい方がいましたら、簡単にで結構ですので四つの違いを説明して、どれが最適なのかお教えいただけませんでしょうか?よろしくお願いします。

  • JPEGファイルにEXIFで作者名を埋め込むには

    JPEGファイルにEXIFで作者名を埋め込もうと思っています。 EXIFのデータ構造に関しては調べたのでバイナリファイルにランダムアクセスし、データ挿入する方法を考えています。 image.jpgをFileInputStreamで読み、image.jpg.tmpに書き出していく EXIFタグが見つかったら、挿入したいデータを書き出す。 残りのデータを書き出す。 image.jpgを削除する。 image.jpg.tmp を image.jpg にリネームする。 処理の手順としてこのように考えていますが、妥当でしょうか? RandomAccessFileやChannelを使う方法、 Image I/Oを使う方法などありましたらお教えください。

    • ベストアンサー
    • Java
  • Exifデータの無いjpegにファイルの日時を

    環境はWindowsXPです。 昔のデジカメで撮影したjpegにExifデータが無く、 多分Exif情報を取得してソートしているであろう 写真管理ソフト(sonyのビデオカメラに付属していたPMB)で 1989年1月1日00:00の扱いになってしまいます。 「F6Exif」というソフトでExif情報の追加はできるのですが、 一括して同じ日時しかできず、何千枚もの写真を目の前に 途方にくれています。 ファイルそのもの(この場合はjpeg)の作成日時もしくは更新日時を取得して Exif情報とするソフト(できればフリーソフトがありがたいのですが...)を ご存知で無いでしょうか? もちろん複数ファイルを一括でできるものが助かります。 よろしくお願いします。

  • JPEGのタグ情報?Exifの変更について

    デジカメで写真を撮るとExif形式のデータをもつJPEGが保存されますよね? そのときデジカメの日付の設定が狂っていると、このデータ中に保存される日付データも間違って保存されるんですが、このデータを修正する方法はないのでしょうか?もしくはそういうソフトはありますか?教えてください。 コダックのデジカメを持っているのですが、ファームウェアの不良で数回使うごとに日付がリセットされるらしく、設定を忘れると、日付がめちゃくちゃになってしまいます。 このExif形式のデータを編集できれば問題ないのですが・・・

  • C言語でMIDIを鳴らしたいです。

    C言語でMIDIを鳴らしたいです。 現在Microsoft Visual C++ Express Edition 2010(または2008)を使ってC言語(C++ではなく)の勉強をしているのですが、 Express EditionではMIDIを鳴らすことはできないのでしょうか? midiファイルを読み込んで再生するのではなく、Win32APIなどで特定の音を鳴らすようにしたいです。 例えば、ボタンを押したらドの音が鳴るという程度のプログラムです。 サンプルプログラムをいくつか検索してコンパイルしてみたのですが、バージョンが古いからなのか、Express Editionでは無理なのかエラーが出てしまいます。 どのようなプログラムを作れば音を鳴らすことができるのでしょうか? できればソースを示していただけるとありがたいです。

  • JFIFとexifフォーマット

    こんばんは。 exifフォーマットのファイルから、情報を取り出すプログラムを作っています。 ところが、あるテスト画像の情報がうまく取れないので、バイナリエディタで中身を見たら、...JFIF...Exif...となっていました。 JFIFについて調べたのですが、jpegにさらに付加情報を加えた、という情報くらいで、詳しいフォーマットについて分かりませんでした。 でも、共通して言えるのは、先頭20バイト以外は、exifフォーマットと同じように見えることです。 JFIFのヘッダ部分を取り除けば、exifフォーマットとして情報を読むことが出来るのでしょうか? お詳しい方がいらっしゃいましたら、宜しくお願いします。

  • JPEGで更新日時を変えずにEXIFデータを変えられる?

    デジカメのデータを整理しようとして、 JPEGのEXIFデータにキーワードを入れていこうと考えていますが、 (ADOBE BRIDGEを使っています)キーワードを変えると、 ファイルの更新日時も元から変わってしまいます。 更新日時を変えずにEXIFデータを入力していく方法は 何かないでしょうか? (BRIDGE以外のソフトでもかまいません)

  • C言語を勉強するためのPC環境

    以前ネットでC言語を勉強するのにMicrosoft Visual Studo Express Editionが無料でよいと読んだ覚えがあるのですが、C#なのかC++を使うべきなのかどうなのでしょうか?また、CとC#やC++は違うととも書いているものもあって混乱してます。

専門家に質問してみよう