ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Image のプロパティ

イメージ コンポーネントの外観と動作の制御

イメージは、アプリのアイコンやロゴなどの画像を表示できるようにする UI コンポーネントです。Image プロパティは、イメージの外観と動作を制御します。ドット表記を使用して、特定のオブジェクトとプロパティを参照します。

uf = uifigure;
im = uiimage(uf);
im.ImageSource = 'peppers.png';

イメージ

すべて展開する

イメージのソースまたはファイル。ファイル パスまたは m x n x 3 のトゥルーカラー イメージ配列として指定します。サポートされているイメージ形式には、JPEG、PNG、GIF、SVG または m x n x 3 のトゥルーカラー イメージ配列が含まれます。

トゥルーカラー イメージ配列の詳細については、イメージの種類を参照してください。

例: im = uiimage('ImageSource','peppers.png');

例: im.ImageSource = 'C:\TEMP\ngc6543a.jpg';

イメージのスケーリング方法。次の表にリストされた値のいずれかとして指定します。この名前と値のペアの引数を使用して、イメージをコンポーネント エリア内にどのようにレンダリングするかを指定します。

次の表では、イメージ例を使用した各スケール方法も示します。レンダリング後のイメージ例では、イメージ コンポーネントの BackgroundColor プロパティは 'magenta' に設定されています。SVG イメージ ファイルのスケーリング動作は、ファイルの定義方法によって異なる場合があります。

説明スケール アップスケール ダウン縦横比の維持クリップ イメージ
元のイメージレンダリング後のイメージ
'fit'任意の方向にスケーリングしてイメージをコンポーネント エリア内に表示し、クリッピングせずに縦横比を維持します。

ありありありなし
'fill'任意の方向にスケーリングしてコンポーネント エリアを埋めて、縦横比を維持し、必要に応じてクリッピングします。

ありありありあり
'none'イメージの実際のサイズを使用し、縦横比を維持します。コンポーネント エリアがイメージより小さい場合、イメージはクリップされます。

なしなしありあり
'scaledown'

スケール ダウンし、クリッピングせずに縦横比を維持します。


元のイメージがコンポーネント エリアより大きい場合、イメージはスケール ダウンされ、ScaleMethod 'fit' に設定されているようにレンダリングされます。元のイメージがコンポーネント エリアより小さい場合、イメージはスケール ダウンされず、ScaleMethod 'none' に設定されているようにレンダリングされます。

なしありありなし
'scaleup'

スケール アップし、クリッピングにより縦横比を維持します。


元のイメージがコンポーネント エリアより小さい場合、イメージはスケール アップされ、ScaleMethod 'fit' に設定されているようにレンダリングされます。元のイメージがコンポーネント エリアより大きい場合、イメージはスケール アップされず、ScaleMethod 'none' に設定されているようにレンダリングされます。

ありなしありあり
'stretch'任意の方向にスケーリングし、縦横比を維持せず、クリッピングせずにコンポーネント エリアを埋めます。

ありありなしなし

すべて展開する

背景色。RGB 3 成分、16 進数カラー コード、または表にリストされた色オプションのいずれかとして指定します。

カスタム色を使用する場合は、RGB 3 成分または 16 進数カラー コードを指定します。

  • RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 成分の行ベクトルです。強度値は [0,1] の範囲でなければなりません。たとえば [0.4 0.6 0.7] のようになります。

  • 16 進数カラー コードは、ハッシュ記号 (#) で始まり、3 桁または 6 桁の 0 から F までの範囲の 16 進数が続く文字ベクトルまたは string スカラーです。これらの値では大文字小文字は区別されません。したがって、カラー コード '#FF8800''#ff8800''#F80'、および '#f80' は等価です。

あるいは、名前を使用して一部の一般的な色を指定できます。次の表に、名前の付いた色オプション、等価の RGB 3 成分、および 16 進数カラー コードを示します。

色名省略名RGB 3 成分16 進数カラー コード外観
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'該当なし該当なし該当なし色なし

MATLAB® の多くのタイプのプロットで使用されている既定の色の RGB 3 成分および 16 進数カラー コードを次に示します。

RGB 3 成分16 進数カラー コード外観
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

対話機能

すべて展開する

イメージの可視性。'on' または 'off' として指定します。Visible プロパティは、画面にイメージを表示するかどうかを決定します。Visible プロパティが 'off' に設定されている場合、イメージ コンポーネント全体が非表示になりますが、その場合でもプロパティを設定したりアクセスしたりできます。

アプリの起動を高速化するには、起動時に表示する必要のないすべてのコンポーネントの Visible プロパティを 'off' に設定します。

イメージの操作可能状態。'on' または 'off' として指定します。

  • 'on' — イメージは通常に表示され、アプリ ユーザーは、イメージをクリックし、イメージに関連付けられている ImageClickedFcn コールバックをトリガーできます。

  • 'off' — イメージはグレー表示になり、アプリ ユーザーがイメージをクリックできないことと、関連付けられているコールバックが実行されないことを示します。

ツールヒント。文字ベクトル、文字ベクトルの cell 配列、string 配列、または 1 次元の categorical 配列として指定します。このプロパティを使用して、実行時にユーザーがポインターをコンポーネントに合わせるとメッセージが表示されるようにします。コンポーネントが無効になっている場合でも、ツールヒントは表示されます。複数行のテキストを表示するには、文字ベクトルの cell 配列または string 配列を指定します。配列の各要素は、テキストの各行になります。このプロパティを categorical 配列として指定した場合、MATLAB はカテゴリの完全なセットではなく、配列内の値を使用します。

位置

すべて展開する

親を基準にしたイメージ コンポーネントの位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。次の表で、ベクトルの各要素について説明します。

要素説明
left親コンテナーの内側左端からイメージ コンポーネントの外側左端までの距離
bottom親コンテナーの内側下端からイメージ コンポーネントの外側下端までの距離
widthイメージ コンポーネントの外側の左右の端の間の距離
heightイメージ コンポーネントの外側の上下の端の間の距離

Position の値の基準は、親コンテナーの "描画可能領域" です。描画可能領域は、コンテナーの境界線の内側にある領域で、メニュー バーやタイトルなどの装飾が占める領域は含まれません。

すべての測定単位はピクセルです。

イメージ コンポーネントの位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。すべての測定単位はピクセルです。このプロパティ値は、Position プロパティと同一です。

このプロパティは読み取り専用です。

イメージ コンポーネントの位置とサイズ。[left bottom width height] の形式の 4 要素ベクトルとして指定します。すべての測定単位はピクセルです。このプロパティ値は、Position プロパティと同一です。

イメージ コンポーネント エリア内のレンダリング後のイメージの水平方向の配置。'center''left' または 'right' として指定します。この水平方向の配置は、イメージ コンポーネントの境界線内を基準とした相対位置です。ScaleMethod プロパティ値が 'stretch' に設定されている場合、このプロパティを設定しても効果はありません。

たとえば、次の表は、各 HorizontalAlignment 値のレンダリング後のイメージを示しています。ここで、ScaleMethod プロパティ値は 'none' に設定されていて、VerticalAlignment プロパティには既定値 'center' が設定されています。ここに示されていない、その他多くの組み合わせを実装できます。

水平方向の配置の値説明レンダリング後のイメージ
'center'イメージの左端と右端は、イメージ コンポーネントの境界線内の左側と右側の間でそれぞれ等間隔です。

'left'イメージの左端は、イメージ コンポーネントの境界線内の左側と揃っています。

'right'イメージの右端は、イメージ コンポーネントの境界線内の右側と揃っています。

イメージ コンポーネント エリア内のレンダリング後のイメージの垂直方向の配置。'center''left' または 'right' として指定します。垂直方向の配置は、イメージ コンポーネントの境界線内を基準とした相対位置です。ScaleMethod プロパティ値が 'stretch' に設定されている場合、このプロパティを設定しても効果はありません。

たとえば、次の表は、各 VerticalAlignment 値のレンダリング後のイメージを示しています。ここで、ScaleMethod プロパティ値は 'none' に設定されていて、HorizontalAlignment プロパティには既定値 'center' が設定されています。ここに示されていない、その他多くの組み合わせを実装できます。

垂直方向の配置の値説明レンダリング後のイメージ
'center'イメージの上端と下端は、イメージ コンポーネントの境界線内の上側と下側の間でそれぞれ等間隔です。

'top'イメージの上端は、イメージ コンポーネントの境界線内の上側と揃っています。

'bottom'イメージの下端は、イメージ コンポーネントの境界線内の下側と揃っています。

レイアウト オプション。空の配列 GridLayoutOptions オブジェクトとして指定します。このプロパティは、グリッド レイアウト コンテナーの子であるコンポーネントのオプションを指定します。イメージ コンポーネントがグリッド レイアウト コンテナーの子ではない場合 (たとえば、Figure またはパネルの子である場合) は、このプロパティは空で、効果はありません。しかし、イメージ コンポーネントがグリッド レイアウト コンテナーの子である場合は、GridLayoutOptions オブジェクトの Row プロパティおよび Column プロパティを設定して、グリッドの目的の行と列にコンポーネントを配置することができます。

たとえば、以下のコードは、イメージ コンポーネントをその親グリッドの 3 行目の 2 列目に配置します。

g = uigridlayout([4 3]);
im = uiimage(g);
im.ImageSource = 'peppers.png';
im.ScaleMethod = 'fill';
im.Layout.Row = 3;
im.Layout.Column = 2;

イメージが複数の行または列にまたがるようにするには、Row または Column プロパティを 2 要素ベクトルとして指定します。たとえば、このイメージは列 2 から 3 にまたがります。

im.Layout.Column = [2 3];

コールバック

すべて展開する

イメージ クリック時のコールバック。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

このコールバックは、ユーザーがアプリでイメージをクリックしたときに実行されます。

このコールバック関数は、ユーザーのイメージ操作に関する特定の情報にアクセスできます。MATLAB は、この情報を ImageClickedData オブジェクトに格納して、2 番目の引数としてコールバック関数に渡します。App Designer では、引数は event と呼ばれます。ドット表記を使用して、オブジェクトのプロパティをクエリできます。たとえば、event.Source は、ユーザーの操作に応じてコールバックをトリガーする Image オブジェクトを返します。ImageClickedData オブジェクトは、文字ベクトルとして指定されているコールバック関数では使用できません。

次の表に、ImageClickedData オブジェクトのプロパティを示します。

プロパティ
EventName'ImageClicked'
Sourceコールバックを実行するコンポーネント

コールバックの記述の詳細については、App Designer でコールバックを記述するを参照してください。

オブジェクト作成関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer でコールバックを記述するを参照してください。

このプロパティは、MATLAB がオブジェクトを作成するときに実行されるコールバック関数を指定します。MATLAB は CreateFcn コールバックを実行する前に、すべてのプロパティ値を初期化します。CreateFcn プロパティを指定しない場合、MATLAB は既定の作成関数を実行します。

既存のコンポーネントに CreateFcn プロパティを設定しても効果はありません。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、作成中のオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

オブジェクト削除関数。次の値のいずれかとして指定します。

  • 関数ハンドル。

  • 最初の要素が関数ハンドルである cell 配列。cell 配列内のその後の要素はコールバック関数に渡される引数です。

  • 有効な MATLAB 式を含む文字ベクトル (非推奨)。MATLAB は、この式をベース ワークスペースで評価します。

コールバックを関数ハンドル、cell 配列、または文字ベクトルとして指定する方法の詳細については、App Designer でコールバックを記述するを参照してください。

このプロパティは、MATLAB がオブジェクトを削除するときに実行されるコールバック関数を指定します。MATLAB は、オブジェクトのプロパティを破棄する前に DeleteFcn コールバックを実行します。DeleteFcn プロパティを指定しない場合、MATLAB は既定の削除関数を実行します。

このプロパティを関数ハンドルまたは cell 配列として指定した場合、コールバック関数の最初の引数を使用して、削除されるオブジェクトにアクセスできます。それ以外の場合は、関数 gcbo を使用してオブジェクトにアクセスします。

コールバック実行制御

すべて展開する

コールバックの割り込み。'on' または 'off' として指定します。Interruptible プロパティは実行中のコールバックが割り込み可能かどうかを決定します。

次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

MATLAB がコールバックを呼び出すたびに、そのコールバックは実行中のコールバック (がある場合) に割り込もうとします。実行中のコールバックを所有するオブジェクトの Interruptible プロパティが、割り込み可能かどうかを決定します。Interruptible プロパティは次の 2 つの値をとることができます。

  • 'on' — 他のコールバックがオブジェクトのコールバックに割り込むことを許可します。割り込みは、drawnowfigureuifiguregetframewaitforpause コマンドなどの、MATLAB が次にキューを処理するポイントで発生します。

    • 実行中のコールバックにこれらのいずれかのコマンドが含まれている場合、MATLAB はそのポイントでコールバックの実行を停止し、割り込みコールバックを実行します。割り込みコールバックが完了すると、MATLAB は実行中だったコールバックの実行を再開します。

    • 実行中のコールバックにこれらのコマンドが含まれていない場合、MATLAB はそのコールバックの実行を割り込みなしで完了します。

  • 'off' — 割り込みの試行をすべてブロックします。割り込みコールバックを所有するオブジェクトの BusyAction プロパティが、その割り込みコールバックを破棄するかキューに入れるかを決定します。

メモ

コールバックの割り込みと実行は、以下の状況では動作が異なります。

  • 割り込みコールバックが DeleteFcnCloseRequestFcn または SizeChangedFcn の各コールバックの場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • 実行中のコールバックが関数 waitfor を現在実行している場合、Interruptible プロパティの値にかかわらず割り込みが発生します。

  • Timer オブジェクトは、Interruptible プロパティ値にかかわらず、スケジュールに従って実行されます。

MATLAB は、割り込みが発生したときにプロパティの状態や表示を保存しません。たとえば、gca コマンドや gcf コマンドから返されたオブジェクトは、別のコールバックを実行するときに変更されている可能性があります。

コールバック キューイング。'queue' または 'cancel' として指定します。BusyAction プロパティは MATLAB による割り込みコールバックの実行の処理方法を決定します。次の 2 つのコールバックの状態について考慮する必要があります。

  • "実行中" コールバックは、現在実行しているコールバックです。

  • "割り込み" コールバックは、実行中のコールバックに割り込もうとするコールバックです。

MATLAB がコールバックを呼び出すたびに、そのコールバックは実行中のコールバックに割り込もうとします。実行中のコールバックを所有するオブジェクトの Interruptible プロパティが、割り込みを許可するかどうかを決定します。割り込みが許可されない場合は、割り込みコールバックを所有するオブジェクトの BusyAction プロパティが、そのコールバックを破棄するかキューに入れるかを決定します。BusyAction プロパティは次の値を取ることができます。

  • 'queue' — 割り込みコールバックをキューに入れ、実行中のコールバックが終了した後に処理されるようにします。

  • 'cancel' — 割り込みコールバックを実行しません。

このプロパティは読み取り専用です。

削除状態。'off' または 'on' として返されます。MATLAB は、DeleteFcn コールバックが実行を開始すると、BeingDeleted プロパティを 'on' に設定します。コンポーネント オブジェクトが存在しなくなるまで BeingDeleted プロパティは 'on' に設定されたままです。

クエリや変更の前にオブジェクトが削除されようとしていないか確認するために BeingDeleted プロパティの値をチェックします。

親/子

すべて展開する

親コンテナー。関数 uifigure を使用して作成された Figure オブジェクト、またはその子コンテナー (TabPanelButtonGroup または GridLayout) のいずれかとして指定します。コンテナーが指定されていない場合、MATLAB は関数 uifigure を呼び出し、親コンテナーとして使用される新しい Figure オブジェクトを作成します。

オブジェクト ハンドルの可視性。'on''callback' または 'off' として指定します。

このプロパティは、オブジェクトの親がもつ子のリストにおけるそのオブジェクトの可視性を制御します。オブジェクトがその親オブジェクトのリストで、子として可視できない場合、オブジェクト階層の検索またはプロパティのクエリによってオブジェクトを取得する関数は、そのオブジェクトを返しません。これらの関数には、getfindobjclf および close が含まれます。オブジェクトは参照できない場合も有効です。オブジェクトにアクセスできる場合は、そのプロパティを設定および取得して、それをオブジェクトに作用する任意の関数に渡すことができます。

HandleVisibility の値説明
'on' オブジェクトは常に参照できます。
'callback'オブジェクトはコールバック内から、あるいはコールバックにより呼び出される関数から参照できます。しかし、コマンド ラインから呼び出される関数からは参照できません。このオプションを使用すると、コマンド ラインからのオブジェクトへのアクセスがブロックされますが、コールバック関数からのアクセスは許可されます。
'off'オブジェクトは常に参照できません。このオプションは、他の関数による UI の意図しない変更を防止するために役立ちます。HandleVisibility'off' に設定すると、その関数の実行中にオブジェクトが一時的に非表示になります。

識別子

すべて展開する

このプロパティは読み取り専用です。

グラフィックス オブジェクトのタイプ。'uiimage' として返されます。

オブジェクト識別子。文字ベクトルまたは string スカラーとして指定します。オブジェクトの識別子として機能する一意の Tag 値を指定できます。コードの他の部分からオブジェクトにアクセスする必要がある場合、関数 findobj を使用して Tag 値に基づいてオブジェクトを検索できます。

ユーザー データ。任意の MATLAB 配列として指定します。たとえば、スカラー、ベクトル、行列、cell 配列、文字配列、table、または構造体を指定できます。このプロパティを使用して、任意のデータをオブジェクトに保存します。

App Designer を使用している場合は、UserData プロパティを使用する代わりに、アプリでパブリック プロパティまたはプライベート プロパティを作成してデータを共有します。詳細については、App Designer アプリ内でのデータの共有を参照してください。

R2019a で導入