最近のスマホはカメラの画質がいいですよね。
filemakerに画像を保存しているファイルはファイル構成を考えないとどんどんファイルサイズが大きくなってしまいますね。
また、メール送信するために添付するファイル容量もメールソフトごとに容量制限があるので、もし保存した画像を使用した資料を添付する場合は、あっという間に制限を超えてメールが送信できないなんてこともあるかもしれません。
そんな時に画像のファイルサイズを小さくする方法として「GetThumbnail」関数を使用しているんじゃないでしょうか。
GetThumbnail ( ソースフィールド ; 幅に合わせる ; 高さに合わせる ) ・・・指定した幅と高さの値に従ってオブジェクトフィールドの内容のサムネールイメージを返します。
この関数をフィールドの計算式に設定したり、トリガに設定してサイズを小さくして保存すればファイルサイズも小さくなって保存されると思います。
以前自分がこの関数の存在を知ったときに、さっそく使用しました。ところが、いざ保存されている写真を全置換で GetThumbnail ( 写真 ; 100 ; 100 ) にして実行するとなぜか「?」になってしまったのです。 あれ?なにか違ったかなと思い、もう一度全置換するとまたも「?」になって画像データが見えなくなってしまったのです。
何度しても「?」になってしまい、全置換ではもしや機能しないのでは??となり全置換で処理するのはあきらめました。
ですので、次にフィールド設定でloopを回して処理することにしました。
こちらでも順調にリサイズされていたのですが、そこでも「?」になる画像があり、あれまたか、、、と思いましたが、単純にレコード確定をしていなかったみたいで、確定後に同じスクリプトを回せばいけました。レコード確定されていない画像は「?」になってしまうようです。なんでも確定はしておけってことですね。。。
とこんな感じで、GetThumbnail 関数を初めて使用したときは四苦八苦状態でした。
また、FileMakerGoで写真を撮影してそのまま保存するという方は、「デバイスから挿入」でカメラを選択したときに解像度を選択できます。その解像度を「最大・大・中・小」から選択できるので、用途によって中や小で設定してみるのもありだと思います。こちらのほうがいろいろ考えなくていいので楽かもしれないですね。
デバイスから挿入 [<テーブル::フィールド>; タイプ: カメラ; カメラ: フロント/バック; 解像度: 最大/小/中/大]
最後に
画像を保存する機能を作成するときは保存するファイルサイズに気をつけて作成する必要があるということです。
何も考えず保存しているとファイルのサイズがとんでもなくなってしまい、動作の思いレイアウトになってしまう可能性があります。
オブジェクトフィールドをオープン格納にておけばそれほどかもしれませんが、その画像を使用してメール送信するときに容量制限で送れないなどなってしまうと、それも問題ですので画像のファイルサイズは小さくしておいて損はないかと思います。