初心者のFileMaker pro Q&A

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2019-09-10 09:56:01

Yas
ゲストユーザー

[解決] 撮影時間の取得について

お世話になっております。

現在、写真帳を作成しています。
オブジェクトフィールドに写真を保存する際、フィールドの計算式でGetThumbnail を使って
写真サイズを小さくしています。
このとき、別のフィールドに撮影時間を取得するようにしているのですが、取得できません。
データビューワーで確認したところ、写真の縮小(GetThumbnail )の計算を入れなければ
時間が表示されるようになりました。

質問は、写真サイズの縮小と時間取得を同時にできる方法はないでしょうか。

環境はFMP17、MACです。

#2 2019-09-10 10:38:33

koeda
メンバー

Re: [解決] 撮影時間の取得について

サムネイルに変換した後の属性を取得しているのでは?

1)写真保存用のオブジェクトフィールド(”写真")を作り、
2)GetThumbnail(写真, ww, hh)の結果をオブジェクトフィールド("サムネイル")へ格納
3)GetContainerAttribute(写真, "created" )の結果をタイムスタンプフィールド("撮影日時")へ格納
ではいかがでしょうか?2)と3)は「入力値の自動化」で計算式で求めます。

写真帳とのことですが、縮小表示用のサムネイルデータと、オリジナルの写真そのもの(の保管)は分けて考えるべきでは?
考えなくて良いのであれば1)のオブジェクトフィールドはグローバルにしておき、使い捨てで良いと思いますが。

編集者 koeda (2019-09-10 10:47:33)

オフライン

#3 2019-09-10 11:28:24

qb_dp
メンバー

Re: [解決] 撮影時間の取得について

フィールドオプション - 入力値の自動化 - 計算値 に設定する場合、以下のようにすれば、グローバル変数:$$created に撮影時間が入ります。

Let(
$$created=GetContainerAttribute(Self; "created" )
;
GetThumbnail(Self; 75; 75)
)

スクリプトトリガで処理した方が良さそうな...

オフライン

#4 2019-09-10 11:33:40

qb_dp
メンバー

Re: [解決] 撮影時間の取得について

あぁ~、以下でスクリプトナシ、入力値の自動化 のみでもイケますね。

フィールド:撮影時間
フィールドオプション - 入力値の自動化 - 計算値

Evaluate ( "$$created"; 画像フィールド)

オフライン

#5 2019-09-11 00:48:35

Yas
ゲストユーザー

Re: [解決] 撮影時間の取得について

回答有難うございます。

Koedaさま
確かにオリジナル写真の保管は必要ですね。
ファイルが大きくなるのが嫌でデータを小さくしていますが
オリジナルは外部保存にして整理を考える必要がありますね。
以前、外部保存も試してみたのですがファイルを移動するたびに
読み込めなくなり、嫌になって今に至ります。

qb_dpさま
サムネイルにするまえに、データの日付を読み込んでおくのですね。
非常に参考になりました。


お二人に再度伺いたいのですが、撮影データ(exif)を消さないでデータを小さくする
方法はあるのでしょうか。
将来、位置データや撮影時間を利用して日報を作れないかなと考えています。
qb_dpさんに教えて頂いた方法で、予めexifデータを取得しておけばいいのでしょうが
機会は少ないのですが、写真のみをエクスポートする場合もあるのでデータが残っている
方が便利かなと考えています。

#6 2019-09-11 13:52:28

koeda
メンバー

Re: [解決] 撮影時間の取得について

外部保存の件については、最近のQ&Aでも触れられていました。
qb_dpさんご教示の通り、外部保存といっても外部からいじって良いものではありません。
https://fm-aid.com/bbs2/viewtopic.php?id=9562

撮影データ(exif)を消さないでデータを小さくする方法はあるのでしょうか。

これについては、まずは以下のスレッドをざっとご覧ください。
https://fm-aid.com/bbs2/viewtopic.php?id=9479

Macであれば、FileMakerからAppleScriptを実行して画像をリサイズすることが可能です。
その際Exif情報は、画像のピクセル幅/ピクセル高さが書き換えられ、その他はそのまま残ります。
したがって、まずオリジナル写真からリサイズしたファイルを作成し、次にそれをFileMakerへインポートする
という手順を踏むことになろうかと思います。

オリジナル写真のパスをペーストし、それを元に処理を行うスクリプトを作成されたらどうでしょう?
その際、以下の投稿もヒントになるかもしれません。
https://fm-aid.com/bbs2/viewtopic.php?id=9469

編集者 koeda (2019-09-11 13:55:00)

オフライン

#7 2019-09-11 14:17:51

koeda
メンバー

Re: [解決] 撮影時間の取得について

補足
Exif情報をフルに参照・活用するには、Image Eventsの機能だけでは非力です。
ExifToolという強力なツールがあります。Mac/Win両バージョンがあります。

https://sno.phy.queensu.ca/~phil/exiftool/

使い方については、ExifToolでググるといっぱい出てきます。

コマンドラインで
exiftool -j hogehoge.jpg
などと実行すると、ExifデータがJSONで取得できます。
これをFileMakerのJSON関数で処理すれば簡単にデータベースに取り込めますね。

編集者 koeda (2019-09-11 14:30:05)

オフライン

#8 2019-09-11 17:21:32

Yas
ゲストユーザー

Re: [解決] 撮影時間の取得について

koedaさま

アドバイス有難うございます。
教えて頂いた関連情報の中身をよく読んで、組み込んでいこうと思います。
また、躓きましたら質問させてください。

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer