GDI+によるEXIFデータの取得

解決


mizuki  2013-05-07 01:19:28  No: 44527

XE3_starter  Win7
お世話になります。今まではExifデータの取得にはExifInfoコンポーネントを使用していましたがMr.Xray様のサイトでGDI+で簡単に取得/書き込みできることを知りました。
http://mrxray.on.coocan.jp/Delphi/ResizeSamples/R400_Properties_MetaData.htm#top
テストしてみた結果サンプルにあるPropertyTagTypeAsciiとPropertyTagTypeRationalのデータはサンプルを参考に必要項目を追加して取得することができました。Typeは他にPropertyTagTypeShortとPropertyTagTypeLongがあるようです。このうち特にShortはISOの取得にどうしてもほしいので取得方法/書き込み方法をご教示ください。


Mr.XRAY  2013-05-08 03:30:20  No: 44528

>取得方法/書き込み方法をご教示ください。  

該当の記事を掲載している本人の Mr.XRAY です.
プロパティの違いなので,他のプロパティの取得・設定方法が参考になりませんか ?
具体的に何が望みなのでしょうか.誰かにその機能のコードを作成して欲しいということでしたら,
どちらか言うと 「依頼」に近いですね.依頼には代償が伴うことになると思いますが.

[Image Property Tag Type Constants]
http://msdn.microsoft.com/en-us/library/windows/desktop/ms534414%28v=vs.85%29.aspx

を読むと,PropertyTagTypeShort は 符号なしの 16 ビット整数型の配列とあります.
Delphi で 符号なし16 ビットの整数は,WORD ですね.配列ですから,配列を定義します.
PropertyTagExifISOSpeed は値は 1 つだけだと思うので,要素数は 1 つだけだと思います.
(複数あるのかな ?)

http://msdn.microsoft.com/en-us/library/windows/desktop/ms534416%28v=vs.85%29.aspx#_gdiplus_constant_propertytagexifisospeed

上のリンクは記事の掲載ページにもリンクがあります.念のため.


mizuki  2013-05-09 04:11:34  No: 44529

Mr.Xray様  ご回答をありがとうございました。
貴サイトにあるサンプルで試したら2バイトと出ましたのでSmallIntかと勘違いしていました。ポインターの変換を勉強して目的を達成したいと思います。

>どちらか言うと 「依頼」に近いですね.依頼には代償が伴うことになると思いますが.

すみませんでした。  何をやってもエラーがでてしまい質問させていただいた次第ですのでご容赦ください。


Mr.XRAY  2013-05-09 07:51:35  No: 44530

>何をやってもエラーがでてしまい質問させていただいた次第ですのでご容赦ください。

許すとか,許さないとかの問題ではないですね.
もう一度,以下の記事を読んでください (見るのではなく読んでください) 

http://ht-deko.minim.ne.jp/tech045.html#tech095


助監督  2013-05-09 08:26:31  No: 44531

う、書いてたらまたMr.XRAYさんとかぶってる…。
以下、自分の感想と意見です。
------------------------

うーん、[解決]ということは、CCR Exifを使う方針にしたのでしょうか。

EXIFデータをJPEGに残したい
https://www.petitmonte.com/bbs/answers?question_id=7983
(>ここで解決サインを入れさせていただきました  とありますが、解決入ってませんよー。)

もしCCR Exifがmizukiさんの要求をすべて満たすのならばそれは素晴らしく、喜ばしいことだと思います。
(Exifを扱うための、とても良い選択肢として皆に知られることにもなるわけですし。)

しかしmizukiさんの行いにはいくつか問題があると思います。
結果論、揚げ足取りではありますが、あえて指摘させてください。

・こちらの質問を投稿した時点で、一つの掲示板内でマルチポスト的になっている(誰かが無駄な労力を使う危険性あり)
・>何をやってもエラーがでてしまい質問させていただいた  → ならばそこを詳しく説明して質問すれば良かったと思います!
・Mr.XRAYさんはツンデレなので言いませんが、サイトの内容は本日付でアップデートされています。(PropertyTagTypeShort等の読み書き)

[解決]ならば、もう一つの質問がまるで無いかのごとく振舞うのでなく、せめてセルフフォローを入れてから終わりにして欲しいな、と。
「ぜんぜん別の話ですよぅ」ということなら失礼。関連資料を読み込んではいないもので。


Mr.XRAY  2013-05-09 23:41:55  No: 44532

>Mr.XRAYさんはツンデレなので言いませんが、

ハハハッ.好い方に受け取っておきますです.
記事の更新の件,サンクスです.
基本的に,ネット上で,サイトの記事等を紹介したりするのはマナー違反ではないと思います.
むしろ「丸投げ」の質問の方がマナー違反ですよね ? 
参考までに,私のサイトの記事や画像は,ほんの一部を除いて,転載,引用は自由となっています.
各ページにも,ソースコードにも Copyright は意識的に書いていません.

たまたま,ここに,その記事の掲載者がレスしているから,遠慮みたいのがあるのかも知れませんね.
前にも似たようなことがありました.

ちなみに,ccr exif へのリンクも,該当記事のページにあります.
昨日,FMX (FireMonkey) のテスト記事へのリンクを追加しました (ダウンロードは不可のようです)

「喫茶XRAY」はスパムがくれば対応するつもりですが,現在は放置状態となっていますので,
よろしくお願いします (笑)
なお,サイトの更新状況は,Twitter に書く方針に変更しました.


mizuki  2013-05-10 03:52:13  No: 44533

助監督様    色々とご指摘いただきありがとうございます。
なるべく後進の(いないかもしれませんが)参考になるようにこうして解決した、との結果を出して締めくくるようにしたいと思います。そしてMr.Xray様のサイトの追加情報をありがとうございました。

Mr.Xray様  貴サイトのサンプル11,12でWordの処理の仕方をテストして学び、これで実装可能であることを確認しました。ありがとうございました。GDI+でExifが取れることを知ってこれは簡便ですばらしいと飛びついたものですがポインターの処理の仕方などがわからずに質問させていただいたものです。
僅かな本をバイブルにDelphiを覚えたものですがポインターなどのちょっと深いことはどこにも書いてないので一寸踏み込んだものはついついサンプルコードが頼りになってしまいます。以後質問は極力慎重にしたいと思います。

お礼まで


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加