Tips

QuickTimeへの依存を断つために

日付2011/04/14
ID76282 (英語原文参照)
バージョン11, 12
プラットフォームMac/Win

4D v11 SQL以降, 4Dは画像の表示をQuickTimeに依存することをやめ, JPEGやPNGなど, どの画像フォーマットであってもシステムのネイティブAPIを利用するようになりました。ただ唯一の例外がMacPICT形式で, このフォーマットだけはQuickTimeのライブラリを必要とします。もっとも, MacPICTは実際のところコンテナであり, JPEGやGIFやTIFFなど, 他のフォーマットの画像を内部に持つことができるものです。

QuickTimeへの依存を断つために, CONVERT PICTUREコマンドを使用し, ピクチャを一般的なフォーマットに変換することが勧められています。フィールドであれば, 次のようなコードでMacPICTをJPEG形式に変換することができます。

ALL RECORDS([Pictures_4D])
While (Not(End selection([Pictures_4D])))
    CONVERT PICTURE([Pictures_4D]Pic;".jpg")
    SAVE RECORD([Pictures_4D])
    NEXT RECORD([Pictures_4D])
End while

ちなみにv12であれば, JPEGの圧縮率も指定することができます。

CONVERT PICTURE([Pictures_4D]Pic;".jpg"; 0.6)

大事なポイントとして, 上記の処理は必ずQuickTimeがインストールされているWindowsマシンかMacで実行する必要があります。QuickTimeのないマシンで変換を実行した場合, MacPICTは失われることになります。QuickTimeの有無は, 次のようなコードで確認することができます。

ARRAY TEXT($ids_at;0)
ARRAY TEXT($names_at;0)
PICTURE CODEC LIST($ids_at;$names_at)
If (Find in array(".qtif";$ids_at)<0) // QuickTime image
    ALERT("QuickTime is not installed.")
End if