メインコンテンツまでスキップ
バージョン: 20 R6 BETA

ピクチャー

フォーム上で使用されるピクチャーについて、4Dは次のようにサポートしています。

サポートされるネイティブフォーマット

4Dはピクチャーフォーマットのネイティブ管理を統合しています。 これは、ピクチャーが変換されることなく、元のフォーマットのまま 4D で格納、表示されることを意味します。 (シェイドや透過など) フォーマットにより異なる特定の機能は コピー・ペーストされる際にも保持され、改変なく表示されます。 このネイティブサポートは 4D に格納されるすべてのピクチャー (デザインモードでフォームにペーストされた スタティックピクチャー、ランタイムで 入力オブジェクト にペーストされたピクチャーなど) に対して有効です。

もっとも一般的なフォーマット (例: jpeg、gif、png、tiff、bmp、等) はどちらのフォーマットでもサポートされます。 macOS では、PDF フォーマットのエンコーディング/デコーディングも可能です。

サポートされるフォーマットの完全なリストは OS や、マシンにインストールされているカスタムコーデックによって異なります。 どのコーデックが利用可能かを調べるためには、PICTURE CODEC LIST コマンドを使用してください。また、データ型の ピクチャー の項も参照ください。

利用不可能なピクチャーフォーマット

マシン上で利用できないフォーマットのピクチャーに対しては、専用のアイコンが表示されます。 アイコンの下部にその拡張子が表示されます。

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

このアイコンは、そのピクチャーがローカルでは表示も編集もできないことを意味します。ですが、中身を改変することなく保存し、他のマシンで表示することは可能です。 たとえば、Windows での PDF ピクチャーや、PICT フォーマットのピクチャーなどが該当します。

高解像度ピクチャー

4D は macOS および Windows の両方で高解像度ピクチャーの表示をサポートしています。 高解像度ピクチャーは、スケール係数または dpi によって定義されます。

スケール係数

従来の標準的なディスプレイと比較して、高解像度ディスプレイは高い画素密度を持ちます。 これらの高解像度ディスプレイにおいてピクチャーが正しく表示されるには、適用する スケール係数 (例: 2倍、3倍など) に応じてその画素数を増やす必要があります。

高解像度のピクチャーを使う場合、ピクチャー名に "@nx" (n: スケール係数) を付けてスケール係数を指定することができます。 下のテーブルの例でも、高解像度ピクチャーの名前に、circle@2x.pngcircle@3x.png といった形でスケール係数が指定されています。

表示タイプスケール係数例題
標準解像度1:1 ピクセル密度1x
circle.png
高解像度ピクセル密度は2、または3の係数で増加
2x3x
circle@2x.png
circle@3x.png

"@nx" で定義された高解像度ピクチャーは、次のオブジェクトで使用できます。

4D は自動的に最高解像度のピクチャーを優先します。 例: 標準解像度と高解像度の2つのスクリーンを使用している際に、片方からもう片方へとフォームを移動させると、4D は常に使用可能な範囲内での最高解像度のピクチャーを表示します。 コマンドまたはプロパティが circle.png を指定していたとしても、circle@3x.png があれば、それを使用します。

解像度の優先順位付けはスクリーン上のピクチャー表示にのみ適用され、印刷に関しては自動適用されないことに留意が必要です。

DPI

高解像度が自動的に優先されますが、スクリーンやピクチャーの dpi (*)、およびピクチャー形式によって、動作に違いが生じることがあります:

演算動作
ドロップ、ペーストピクチャーの設定:
  • 72dpi または 96dpi - ピクチャーは "[中央合わせ]"(FormObjects/properties_Picture.md#中央合わせ--トランケート-中央合わせしない) 表示され、ピクチャーを表示しているオブジェクトは同じピクセル数です。
  • その他の dpi - ピクチャーは "スケーリング" 表示され、ピクチャーを表示しているオブジェクトのピクセル数は (ピクチャーのピクセル数 / ピクチャーの dpi) * (スクリーンの dpi) です。
  • dpi なし - ピクチャーは "スケーリング" 表示されます。
自動サイズ (フォームエディターのコンテキストメニュー)ピクチャーの表示が:
  • [スケーリング]](FormObjects/properties_Picture.md#スケーリング) - ピクチャーを表示しているオブジェクトのピクセル数は (ピクチャーのピクセル数 / ピクチャーの dpi) * (スクリーンの dpi) にリサイズされます。
  • スケーリング以外 - ピクチャーを表示しているオブジェクトは、ピクチャーと同じピクセル数です。

(*) 通常は macOS = 72dpi, Windows = 96dpi

ダークモード (macOS のみ)

フォームがダークスキームを使用 している場合に、標準のピクチャーの代わりに使用する専用のピクチャーやアイコンを定義することができます。

ダークモードピクチャーは以下のように定義します:

  • ダークモードピクチャーは、標準 (ライトスキーム) バージョンと同じ名前で、"_dark "という接尾辞が付きます。
  • ダークモードピクチャーは、標準バージョンの隣に保存します。

ランタイム時に、4D は 現在のフォームのカラースキーム に応じて、ライト用またはダーク用のピクチャーを自動的にロードします。

ピクチャー上のマウス座標

4D では、ピクチャー式 が設定された 入力オブジェクト をクリック、またはホバーした際のマウスのローカル座標を取得できます。これはスクロールやズーム処理がおこなわれている場合でも可能です。 このピクチャーマップに似た機構は、たとえば地図作製ソフトウェアのインターフェースや、スクロール可能なボタンバーを管理するのに使用できます。

座標は MouseXMouseY システム変数 に返されます。 座標はピクセル単位で表現され、ピクチャーの左上隅が起点 (0,0) となります。 マウスがピクチャの座標の外側にある場合には、MouseXMouseY には-1が返されます。

これらの値は、On ClickedOn Double ClickedOn Mouse upOn Mouse Enter、あるいは On Mouse Move フォームイベントの一部として取得することができます。