4Dはピクチャフォーマットのネイティブ管理を統合します。これは4D内で、ピクチャが変換されることなく、元のフォーマットで格納、表示されることを意 味します。(シェイドや透過など) フォーマットにより異なる特定の機能はコピーやペーストされる際にも保持され、変わることなく表示されます。このネイティブサポートは4Dに格納されるす べてのピクチャ (ライブラリピクチャ、デザインモードでフォームにペーストされたピクチャ、アプリケーションモードでフィールドや変数にペーストされたピクチャ) に対し有効です。
4DはWindowsとmacOSの両方においてネイティブなAPIを使用してピクチャーフィールドや変数のピクチャのエンコード(書き込み)やデコード(読み込み)を行います。これらの実装は現在デジタルカメラで使用されているRAWフォーマット含め、数多くのネイティブなフォーマットへのアクセスを提供します。
- Windows では、4DはWIC (Windows Imaging Component) を使用します。
サードパーティーのWIC CODECをインストールしてJPEG-2000などの追加のフォーマットを使用できます。 - macOS では、4DはImageIOを使用します。
もっとも一般的なフォーマット(例:jpeg、gif、png、tiff、bmp、等)はどちらのフォーマットでもサポートされます。macOSでは、PDF フォーマットのエンコーディング/デコーディングが可能です。
サポートされるフォーマットの完全なリストは、OS やマシンにインストールされているカスタムのコーデックによって変わります。どのコーデックが利用可能かを調べるためには、PICTURE CODEC LIST コマンドを使用してください。利用できるコーデックの一覧は、読み込み用と書き込み用で異なる可能性があることに注意して下さい。エンコーディング(書き込み)のコーデックには特有のライセンスが必要になる場合があるからです。
注: WIC およびImageIO はピクチャー内のメタデータの書き込みを許可します。SET PICTURE METADATA および GET PICTURE METADATA コマンドの2つを使用することで、それらのメタデータを開発に役立てることができます。
4Dが認識するピクチャフォーマットは PICTURE CODEC LIST コマンドからピクチャ Codec IDとして返されます。これは以下の形式で返されます:
- 拡張子 (例: “.gif”)
- MIME タイプ (例: “image/jpeg”)
それぞれのフォーマット用に返される形式は、CodecがOSレベルに記録された方法に基づきます。
多くの4Dピクチャ管理コマンドはCodec IDを引数として受けとることができます。したがって PICTURE CODEC LIST から返されるシステムIDを使用しなければなりません。
マシン上で利用できないフォーマットで保存されているピクチャーに対しては、専用のアイコンが表示されます。表示されていないフォーマットの拡張子がアイコンの下に表示されます:

このアイコンは、そのピクチャーが表示されるべきところ全てに自動的に使用されます:

こ のアイコンは、そのピクチャーがローカルでは表示も編集もできないことを意味します。ですが、中身を改変することなく保存し、他のマシンで表示することは 可能です。これは例えば、WindowsでのPDFピクチャーや、PICTフォーマットのピクチャーなどが該当します。
4Dではピクチャフィールドや変数をクリックやホバーした際のマウスのローカル座標を取得できます。これはスクロールやズームが行われている場合でも可能です。このピクチャマップに似た機構は、例えば地図作製ソフトウェアのインターフェースや、スクロール可能なボタンバーを管理するのに使用できます。
座標はMouseXとMouseYシステム変数に返されます。座標はピクセル単位で表現され、ピクチャの左上隅が起点 (0,0) となります。マウスがピクチャの座標の外側にある場合には、MouseXとMouseY には-1が返されます。
これらの変数の値は、On Clicked、On Double Clicked、On Mouse up、On Mouse Enter、あるいはOn Mouse Moveフォームイベントの一部として取得する事ができます。
4Dではピクチャの連結や重ね合わせなどのピクチャ操作を行うことができます。これらの演算子についてはdeveloper.4d.com で説明されています。