• ベストアンサー

PING JPEGファイルのExif規格のコメント部を読み込み・書き込みするプログラムソース

以前、表記処理のできるフリーソフトをフリーソフトを教えていただいた者です。 http://oshiete1.goo.ne.jp/qa3911520.html プログラムの中で計算した結果を、画像ファイルのコメント部に書き込むプログラムをC言語で作成しようと思っています。そこで、 int WriteComment(FILE *fd、char *コメント文字列) int ReadComment(FILE *fd、char *コメント文字列) のような関数を内部で使いたいのですが、このような関数ありませんか?あるいは、自作するための参考になるようなお手本となるソースリストありませんか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

 こんにちは。  「libpng」  http://www.libpng.org/  「libexif」  http://libexif.sourceforge.net/  一応参考程度に。  以下PNGからコメントを表示する static void dump(png_textp p) { const char* pszCompress = p->compression == PNG_TEXT_COMPRESSION_zTXt ? "あり" : "なし"; ::printf("[キーワード: %s][コメント: %s][圧縮: %s]\n", p->key, p->text, pszCompress); } int ReadPNG(FILE* pf) { png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); if(png_ptr == NULL) { return 0; } png_infop info_ptr = png_create_info_struct(png_ptr); if(info_ptr == NULL) { png_destroy_read_struct(&png_ptr, NULL, NULL); return 0; } if(setjmp(png_jmpbuf(png_ptr))) { png_destroy_read_struct(&png_ptr, &info_ptr, NULL); return 0; } png_init_io(png_ptr, pf); png_set_sig_bytes(png_ptr, 0); png_read_png(png_ptr, info_ptr, 0, NULL); //ココでテキスト部を参照する for(int i = 0; i < info_ptr->num_text; ++i) dump(&info_ptr->text[i]); png_read_end(png_ptr, info_ptr); png_destroy_read_struct(&png_ptr, &info_ptr, NULL); return 1; } int main() { FILE* pf = fopen("PNGファイル名", "rb"); ReadPNG(pf); fclose(pf); return 0; }  以下JPEGからEXIFを表示する int main() {     ExifData* p = exif_data_new_from_file("JPEGファイル名");     exif_data_dump(p);     exif_data_free(p);     return 0; }

usatan2
質問者

お礼

回答ありがとうございます。 こちらも、なかなか良さそうなページですね。 ご紹介ありがとうございます。 自分で探しても、うまく探せなかったので、本当に助かります。 ダウンロードして、読んでみます。 ところで、Exif規格のコメント部を読み書きするだけでも、libpngを使う場合、zlibが必要なのでしょうか? もしご存知なら、お教えください。

その他の回答 (2)

回答No.3

 こんばんは。御礼頂き感謝いたします。 >>ところで、Exif規格のコメント部を読み書きするだけでも、libpngを使う場合、zlibが必要なのでしょうか?  はい。  libpngの様々な箇所でzlibの関数に依存している為、結局の所zlibをリンクする必要が有ります。  試しにzlibを外してみましたが、至る所でリンクエラーだらけです。

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.1
usatan2
質問者

お礼

回答ありがとうございます。 なかなか良さそうなページご紹介ありがとうございます。 ダウンロードして、読んでみます。 ありがとうございます。

関連するQ&A