初心者のFileMaker pro Q&A (旧掲示板)

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

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2017-08-09 22:47:45

yuki
Member

現在レコードの画像サイズを知ることができますか?

Win10 FMP15adv です。

オブジェクトフィールドをもつデータベースを作って、写真やスクリーンショットその他雑多な種類の画像を入れました。
200レコードほどでファイルサイズを見てみると、100MBにもなっていて、画像の縮小が必要と気付きました。(-_-;)
ファイルのコピーを作って、オブジェクトフィールドをすべて消去して見ると、ファイルサイズは1MB以下です。
これから、1レコードずつオブジェクトの写真やPDF?を、外部に持ち出して縮小、再挿入しようかと思っていますが、
現在レコードの画像のサイズを知ることができれば(Jpeg 50KB なのか PNG 1MBなのか)、縮小不要なレコードをスルー出来、仕事が減るんじゃないかと。
ファイルでは「プロパティ」でサイズを見ることができますが、オブジェクトで同様のことは可能でしょうか?

あるいは既に作ってしまったファイルで、ほかにもっとスマートな方法があればご教示ください。

Offline

#2 2017-08-09 23:54:31

mic
Member

Re: 現在レコードの画像サイズを知ることができますか?

GetContainerAttributeという関数があるのでそれを使うと色々分かります。

オブジェクトフィールドのオプションで「データ格納」タブの「オブジェクトデータを外部に保存」にチェックを入れ、「オープン格納」を選択すると、そのフィールドに挿入されている全てのファイルが指定した「保存先」以下に展開されるので、それをそのまま加工するのが楽だと思います。
パスが変わらないように気をつければ、ファイル加工後もファイルメーカーからそのまま参照できるので手間も掛かりません。

Offline

#3 2017-08-09 23:58:24

tomato
Member

Re: 現在レコードの画像サイズを知ることができますか?

未検証なので、テストファイルでお試しください。

自動縮小スクリプト
念のため、検証用フィールド4つ想定

・画像
・画像サイズ(計算フィールド:GetContainerAttribute ( 画像;"fileSize" ))
・縮小画像
・縮小画像サイズ(計算フィールド:GetContainerAttribute ( 縮小画像;"fileSize" ))

スクリプト
レコード移動【最初の】
Loop
If ( GetContainerAttribute ( 画像;"fileSize" )> 3000000 )・・・3M以上の場合
フィールド設定:縮小画像 計算式:GetThumbnail ( 画像;500;500 )
End If
レコード移動:次の:最後まで来たら終了
End Loop
現在のスクリプト終了

問題なさそうなら、直接画像フィールドで行っても良いかと。
あと、画像の大きさは500部分をいじると良いでしょう。


以前ん〜と悩んだのがサイズ指定時に
・50%指定とかで指定出来ないのでしょうか?(50%とすると、画像を50%サイズに変更してくれる)
or
・ファイルサイズ指定出来ないのでしょうか?(1M指定すると、画像を約1Mサイズにしてくれる)

以前試した時に出来なかった記憶があるのですが、出来るなら知りたい。。。。

追記:
GetThumbnail ( 画像;GetWidth (画像)/2;GetHeight ( 画像)/2)で50%縮小に出来るとFMP12のヘルプに載ってました。
サイズ指定は出来ないようですね。失礼しました。

Last edited by tomato (2017-08-10 10:00:39)

Offline

#4 2017-08-10 07:57:57

Moz
Member

Re: 現在レコードの画像サイズを知ることができますか?

tomato さんの方法か GetThumbnail は 指定サイズ以下なら処理をしない(拡大はできない)ので
ファイルサイズのチェックを省略していきなり GetThumbnail という手もあります。

そもそも FileMaker はデータベースアプリケーションなので画像加工機能を求めるのは筋違いですね。
処理の仕上がりに拘るなら画像加工は別途専用のアプリケーションで行いましょう。

GetHumbnail
https://www.filemaker.com/help/15/fmp/j … bnail.html

Last edited by Moz (2017-08-10 07:59:27)

Offline

#5 2017-08-10 16:08:15

yuki
Member

Re: 現在レコードの画像サイズを知ることができますか?

micさん tomatoさん Mozさん
ありがとうございます。
出来ました。
GetContainerAttribute  GetThumbnail 関数を初めて知りました。
大変勉強になりました。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 514.05 KiB (Peak: 518.95 KiB) ]