最近のアクセス:
Image オブジェクト

ナレッジベース内に画像を格納します。

説明

画像は GeneXus ナレッジベース内の組み込みオブジェクトです。これには、ナレッジベース内の必要な場所で使用できる画像の定義、および実際の画像が含まれています。ナレッジベース内で画像をオブジェクトとして扱うことには、次のような利点があります:
  • 相互参照が可能になり、どこで画像が使用されているのかが分かります。
  • 画像は、テーマ、言語、または密度に応じて使い分けることができます。アプリケーションは、実際にどれを使用するかをコンテキストに応じて識別します。
  • 使用する画像を含むオブジェクトをインポート/エクスポートできます。画像を含む zip ファイルを追加で作成する必要はありません。

画像の作成

画像を作成するは、GeneXus のメインメニューで次の順に選択します:  [ ファイル ] > [ 新規 ] > [ オブジェクト ] (またはショートカットキーの Ctrl + N) を使用して作成できます。新しい画像を作成するのはほとんどの場合、プロパティの値を割り当てるなど、画像を選択する必要がある場合です。
たとえば、Web Panel オブジェクト内で画像を表示するとします。この場合、 [ ツールボックス ] から画像コントロールをフォームにドラッグします。ここで、選択可能な画像 (ナレッジベースに既にあるもの) の 1 つを選択するダイアログが開きます。以下にこのダイアログを示します。上部に [ フィルタ ] フィールドがあり、画像名の一覧が左側に、プレビューウィンドウが右側にあります。画像名の一覧の下には、ボタンが 2 つあります。

イメージ:4826.jpg

[ ファイルからインポート ] ボタンで、OS に格納されたファイルから新しい GeneXus 画像を作成できます。ボタンをクリックすると、ファイル選択画面が開きます。画像ファイルを選択すると、以下に示すような新しいダイアログが開きます。ここに作成する画像の基本情報を入力します。

イメージ:4828.jpg

ここで、この Image オブジェクトに割り当てる名前を入力し、ほかのダイアログオプションはそのままにします。既定の名前を使用する場合は、 [ OK ] をクリックして完了します。

外部の画像

ユーザーがコントロールしない画像もあります。たとえば、ほかの会社が所有する、インターネット上の画像を参照する必要がある場合や、社内のアプリケーション間で画像を共有する場合です。これらは外部の画像です。外部の画像は機能としては内部の画像と同じですが、実際の画像がナレッジベース内に格納されていません。ナレッジベース内にはアドレス (URL) のみが格納されています。

外部の画像の作成方法は、内部の画像を作成する場合とほぼ同じです。Web パネルのフォームに画像コントロールをドラッグすると、 [ 画像を選択 ] ダイアログが表示されます。 [ 新規外部画像 ] ボタンを選択すると、以下のような新しいダイアログが表示されます。画像の名前およびソース (画像の場所) を入力します。ソースは通常、「http://www.gxtechnical.com/main/images/evgx_xiv.gif」のような URL です。

イメージ:4829.jpg

外部および内部の画像

内部および外部の画像は、機能的には同じです。どちらも、環境設定やテーマ、ソースコード、プロパティと同じ要領で使用したり参照したりできます。この 2 種類の画像の違いは、内部の画像では、実際の画像がナレッジベースに格納されていますが、外部の画像では、実際の画像がある場所への参照だけが格納されていることです。内部の画像は自動的に管理されるため、設計時や実行時にアプリケーションが画像を使用できるような、画像の保存場所を考慮する必要はありません。外部の画像では、場所が変更された場合に、手動で処理する必要があります。

イメージ:4830.jpg

一方、内部の画像はより多くの格納領域を必要とし、外部の画像よりも大きなエクスポートファイルを生成します。

画像の管理

KB エクスプローラーにある [ カスタマイズ ] ノード直下の [ 画像 ] ノードで、画像のツールウィンドウを開きます。詳細表示が有効な場合は、このウィンドウは下の図のようになります。Windows Explorer と同じように、一覧、サムネイル、詳細、および並べて表示する形式に切り替えることができます。

イメージ:4831.jpg

右側には [ プレビュー ] ウィンドウがあり、実際の画像がある場合は画像を表示します。外部の画像が選択されており、画像が見つからない場合 (画像があるはずの場所にないか、インターネット上にあるがインターネットに接続されていない場合) は表示されません。GeneXus では、外部の画像のキャッシュは保存されません。

画像を (ダブルクリックや、コンテキストメニューの [ 開く ] から) 開くと、新しいウィンドウが表示されます (下図参照)。次に、画像の実装方法について説明します。
GeneXus の画像は実際はコンテナです。コンテナは、各言語、テーマ、密度、またはこれらすべての組み合わせにより、使用される実際の画像を保持しています。「画面のテーマ、言語、密度に応じて異なる画像を使用する方法」を参照してください。
Image オブジェクトに含まれるイメージには、次のプロパティがあります:
イメージ:24061.png
Name 画像の名前です。
Description 画像の説明です。
Is External 画像が外部の画像かどうかを示します。
Theme 画像が使用されるテーマを示します。
Language 画像が使用される言語を示します (言語に依存する場合)。これは、画像にテキストが含まれている場合に役立ちます。
Density 画像が使用される画面密度を示します。詳細はこちらを参照してください。
Rendering Mode 詳細はこちらを参照してください。
Scalable Image 画像が拡張可能かどうかを示します(詳細はこちらを参照してください)。
このため、現在の言語や、テーマ画面密度を変更すると、実際の画像が変更されます。コードを書き換える必要はありません。
このアプローチは、スマートデバイス画像で広く利用されています (プラットフォームに応じたアイコン、起動画像、アプリ画像など)。開発者が複数の画像を 1 つの Image オブジェクトに追加したい場合、次の 2 つの方法があります:
  • 画像ごとに [ 新規画像 ] ボタンを 1 回ずつクリックして画像を追加し、それぞれのプロパティを正しく設定します (密度とテーマは必須です)。
  • すべての画像を *.zip ファイルに圧縮して、それを画像ファイルとしてシンプルにインポートします。
    開発者がシンプル ファイル システム ガイドラインに従うと、GeneXus によって各密度の画像が自動的にインポートされます。
    イメージ:31463.png
    こちらのサイトにサンプルがあります。

実行時の画像の変更

コントロールが表示する実際の画像は、次のメソッドのうちの 1 つを使用して実行時に変更できます。

FromImage(<画像名>)

ビットマップ データ タイプの変数および画像のコントロールに適用されます。<画像名> は、ナレッジベース内に格納されている Image オブジェクトの名前です。&Bitmap がビットマップ データ タイプの変数である場合、その変数により表示される画像は次のコードによって MyNewImage に変更されます。
&Image.FromImage(MyNewImage)

FromImage(<文字列のエクスプレッション>)

ビットマップ データ タイプの変数および画像のコントロールに適用されます。<文字列のエクスプレッション> は、実行時にナレッジベース内に格納された Image オブジェクトの名前として評価される必要があるエクスプレッションです。&Bitmap がビットマップ データ タイプの変数であり、&Image が「MyNewImage」という値を持つ文字変数である場合、この変数により表示される画像は次のコードによって MyNewImage に変更されます。
&Image.FromImage( &Image)

FromLink(<文字列のエクスプレッション>)

ビットマップ データ タイプの変数および画像のコントロールに適用されます。<文字列のエクスプレッション> は、有効な画像の URL として評価される文字列のエクスプレッションです。このフォーマットは、LoadBitmap 関数と同等のものです。

Link()

Image オブジェクトに適用されます。現在の言語およびテーマ (該当する場合) 用の実際の画像へのリンクを含む文字列を返します。例:
TableControl.Background = BackgroundImage.Link()

画像のインポートおよびエクスポート

画像は標準のオブジェクトです。こちらで説明しているように、以前のバージョンからインポートする場合を除いて、画像は特別な処理をせずにエクスポートおよびインポートできます。
ナレッジベース内に画像を保持することで、GeneXus の可用性およびナレッジの整合性が向上しています。

GeneXus によって自動的に使用された画像およびナレッジベースで画像オブジェクトとして管理された画像

GeneXus アプリケーションは、ナレッジベースに含まれている一組の画像オブジェクトを使用します。GeneXus で開発されたアプリケーションの画像はすべて、ナレッジベース内で関連付けられている Image オブジェクトを変更する形で変更が可能です。
すべての画像への参照は、モデルのターゲットパスにある images.txt ファイルに記録されています。

サポートされている画像形式

任意の種類または形式の画像を追加できます。ターゲットプラットフォームでサポートされているもののみを KB に追加するように注意してください (ブラウザ、ネイティブアプリなど) 。
注: IDE を使用して画像を追加すると、セレクターで画像ファイルを選択し、次のファイル拡張子でフィルタリングできます。 
イメージ:46718.png
いずれにしても、ファイル名に共通の「*.* 」フィルタを使用することで、任意のファイル拡張子の画像を選択できます。
さらに、IDE は、.NET Framework (ref) でサポートされている形式の画像のプレビューとサイズなどの情報を表示しますが、これは画像形式を制限しません。画像形式は、ターゲットプラットフォームによってのみ制限されます。
たとえば、SVG を選択した場合、IDE はそれをプレビューしませんが、ブラウザはそれをサポートします。(SVG 形式は今のところ Native Mobile Generator ではサポートされていません)

参考情報


サブページ
Created: 15/01/07 22:48 by Admin Last update: 21/08/25 01:03 by Admin
カテゴリ
Powered by GXwiki 3.0