MATLAB での DPI 対応の動作
R2015b から、MATLAB® は DPI 対応となりました。つまり、フル システム解像度を活用して、グラフィカル要素 (フォント、UI、グラフィックス) を描画できます。グラフィカル要素は、以下の高 DPI システムで、鮮明に一貫したサイズで表示されます。
ディスプレイのインチあたりのドット数 (DPI) の値が 96 より高く設定されている Windows® システム
Apple Retina® ディスプレイ装備の Macintosh システム
DPI 対応の動作は、Linux® システムには適用されません。
以前は、MATLAB では、一部のオペレーティング システムでグラフィカル要素をスケーリングできました。スケーリングは、一貫した外観と機能性を維持するために役立ちましたが、望ましくない影響ももたらしていました。多くの場合、グラフィカル要素がぼやけて見え、これらの要素のサイズが一貫していませんでした。
外観
高 DPI システムでは、以下の視覚効果を得られます。
MATLAB デスクトップ、グラフィックス、フォント、および大半の UI コンポーネントが、Macintosh システムと Windows システムで鮮明に表示され、グラフィカルな詳細まで完全に描画されます。
グラフィックスまたは UI オブジェクトを作成し、
Units
を'pixels'
として指定すると、オブジェクトのサイズが他のオブジェクトのサイズと一致するようになりました。たとえば、プッシュ ボタンのサイズ (ピクセル単位で指定) は、プッシュ ボタン上のテキストのサイズ (ポイント単位で指定) と一致します。MATLAB のツールストリップの要素は、以前のリリースより鮮明に表示されます。ただし、一部のシステムでは、ツールストリップのアイコンが依然としてわずかにぼやけて見える場合があります。
Windows システムでは、MATLAB のツールストリップは、以前のリリースより大きく表示される場合があります。
Windows システムでは、コマンド ウィンドウのフォントとエディターのフォントのサイズが、以前のリリースより大きくなる場合があります。特に、MATLAB 基本設定で既定以外のフォント サイズを選択した場合に、この違いがわかります。フォントがより小さく表示されるように、サイズを調整しなければならない場合があります。
異なるディスプレイが組み合わされたマルチディスプレイ システム (たとえば、ディスプレイの一部は高 DPI 対応だが、すべてが高 DPI 対応ではない場合) では、相違が見られることがあります。そのようなシステムでは、ディスプレイによってグラフィカル要素が異なって表示される可能性があります。
オブジェクト プロパティの使用
オブジェクト プロパティの以下の変更によって、既存のコードへの影響を最小限に抑えながら、MATLAB でグラフィカル要素のレンダリング時にフル ディスプレイ解像度を使用できます。MATLAB で作成する UI はすべて、自動的に DPI 対応となります。
Units プロパティ
グラフィックス オブジェクトや UI オブジェクトの Units
プロパティを 'pixels'
に設定した場合、Windows システムおよび Macintosh システムでは各ピクセルのサイズがデバイスに依存しなくなりました。
Windows システムでは、1 ピクセル = 1/96 インチです。
Macintosh システムでは、1 ピクセル = 1/72 インチです。
Linux システムでは、ピクセルのサイズはディスプレイの DPI によって決まります。
既存のグラフィックスと UI コードは、新しいピクセル サイズでも引き続き適切に機能します。オブジェクトのサイズと位置をピクセル単位で指定 (またはクエリ) しても、スクリーン上の実際のピクセルには対応していない場合があることに留意してください。
たとえば、192-DPI Windows システムの各スクリーン ピクセルは、1/192 インチです。この場合、デバイス非依存のピクセルがカバーするのと同じ線形距離をカバーするのに、2 倍の数のスクリーン ピクセルが使用されます。図を作成し、サイズを 500 x 400 ピクセルに指定すると、MATLAB は、Position
プロパティでサイズが 500 x 400 であることをレポートします。ただし、同じグラフィカル領域をカバーするのに、ディスプレイでは 1000 x 800 スクリーン ピクセルが使用されます。
メモ
R2015b から、MATLAB は、以前のリリースより頻繁に、オブジェクトのサイズと位置を小数値 (ピクセル単位) でレポートする場合があります。たとえば、コードは Figure の Position
プロパティで小数値をレポートする場合がありますが、以前のリリースでは同じ Figure について 0 または正の整数がレポートされていました。
root の ScreenSize プロパティ
root オブジェクトの ScreenSize
プロパティは、高 DPI Windows システムでレポートされる表示サイズと一致しないことがあります。特に、root オブジェクトの Units
プロパティが 'pixels'
に設定されている場合は、これらの値が一致しません。MATLAB は、ScreenSize
プロパティの値を、実際のスクリーン上のピクセルのサイズではなく、デバイス非依存のピクセルに基づいてレポートします。
root の ScreenPixelsPerInch プロパティ
ScreenPixelsPerInch
プロパティは、R2015b では読み取り専用プロパティになりました。スクリーン上のテキストと他の要素のサイズを変更する場合は、オペレーティング システムの設定を調整してください。
また、ScreenPixelsPerInch
プロパティの既定値は設定またはクエリできません。現在、以下のコマンドはエラーを返します。
get(groot,'DefaultRootScreenPixelsPerInch') set(groot,'DefaultRootScreenPixelsPerInch')
get(groot,'FactoryRootScreenPixelsPerInch')
関数 print、getframe、publish の使用方法
関数 getframe および print
高 DPI システムで関数 getframe
(または -r0
オプションを指定した関数 print
) を使用すると、MATLAB が返すイメージ データ配列のサイズは以前のリリースの場合より大きくなります。さらに、配列の要素数が、ピクセル単位での Figure のサイズと一致しない場合があります。MATLAB は、デバイス非依存のピクセルに基づいて、Figure のサイズをレポートします。ただし、配列のサイズは、ディスプレイの DPI に基づきます。
関数 publish
高 DPI システムでドキュメントをパブリッシュすると、ディスクに保存されるイメージは、以前のリリースまたは他のシステムより大きくなります。