主要内容

DPI-Aware行为MATLAB

从R2015b, MATLAB开始®是dpi感知的,这意味着它利用您的完整系统分辨率来绘制图形元素(字体、ui和图形)。在这些高dpi系统中,图形元素显得清晰且大小一致:

  • 窗户®每英寸点位(DPI)值设置高于96的系统

  • 麦金塔电脑系统与苹果视网膜显示

感知dpi的行为不适用于Linux®系统。

以前,MATLAB允许一些操作系统扩展图形元素。这种缩放有助于保持一致的外观和功能,但也引入了不良影响。图形元素通常看起来很模糊,而且这些元素的大小有时也不一致。

视觉外观

以下是你可能在高dpi系统上注意到的视觉效果:

  • MATLAB桌面、图形、字体和大多数UI组件看起来清晰,并呈现完整的图形细节麦金塔电脑和Windows系统。

  • 创建图形或UI对象时,并指定单位作为“像素”,该对象的大小现在与其他对象的大小一致。例如,按钮的大小(以像素为单位)现在与该按钮上的文本大小(以点为单位)一致。

  • MATLAB工具条中的元素看起来比以前的版本更清晰。然而,工具条中的图标在某些系统上看起来仍然有些模糊。

  • 在Windows系统上,MATLAB工具条可能比以前的版本显得更大。

  • 在Windows系统上,命令窗口字体和编辑器字体的大小可能比以前的版本更大。特别是,如果在MATLAB首选项中选择了非默认字体大小,您可能会看到不同。您可能需要调整这些字体大小,使它们看起来更小。

  • 您可能会在包含不同显示器组合的多显示器系统上看到差异(例如,一些但不是所有的显示器都是高dpi)。在这些系统上的显示中,图形元素看起来可能不同。

使用对象属性

这些对对象属性的更改最小化了对现有代码的影响,并允许MATLAB在渲染图形元素时使用完整的显示分辨率。您在MATLAB中创建的所有ui都是自动感知dpi的应用程序。

单位性质

当你设置单位属性的图形或UI对象“像素”,现在每个像素的大小在Windows和麦金塔电脑系统:

  • 在Windows系统上,1像素= 1/96英寸。

  • 麦金塔电脑系统,1像素= 1/72英寸。

  • 在Linux系统上,像素的大小由显示DPI决定。

您现有的图形和UI代码将继续在新的像素大小下正常工作。请记住,以像素为单位指定(或查询)对象的大小和位置可能与屏幕上的实际像素不一致。

例如,在192-DPI的Windows系统上,每个屏幕像素是1/192英寸。在这种情况下,覆盖相同线性距离的屏幕像素是设备无关像素的两倍。如果您创建了一个图形,并将其大小指定为500 × 400像素,MATLAB报告的大小为500 × 400像素位置财产。然而,该显示器使用1000 * 800的屏幕像素来覆盖相同的图形区域。

请注意

从R2015b开始,MATLAB可能比以前的版本更频繁地报告对象的大小和位置作为分数值(像素单位)。例如,您的代码可能在位置属性,而以前的版本报告的是同一数字的整数。

拉根属性

属性可能与高dpi Windows系统报告的显示大小不匹配。的值不匹配单位属性设置为“像素”.MATLAB报告的值属性基于与设备无关的像素,而不是屏幕上实际像素的大小。

根ScreenPixelsPerInch财产

ScreenPixelsPerInch属性在R2015b中成为只读属性。如果您想更改屏幕上的文本和其他元素的大小,请调整操作系统设置。

属性的默认值不能设置或查询ScreenPixelsPerInch财产。这些命令现在返回一个错误:

get(大的,“DefaultRootScreenPixelsPerInch”)组(大的,“DefaultRootScreenPixelsPerInch”
也无法查询出厂值。这个命令也会返回一个错误:
get(大的,“FactoryRootScreenPixelsPerInch”

使用print, getframe和publish函数

getframe和print函数

当使用getframe函数(或打印函数与r0选项)在一个高dpi系统上,MATLAB返回的图像数据数组的大小比以前的版本更大。此外,数组中的元素数量可能与图的像素单位大小不匹配。MATLAB根据与设备无关的像素报告图形大小。但是,数组的大小取决于显示的DPI。

发布功能

在高dpi系统上发布文档时,保存到磁盘上的映像比以前的版本或其他系统上的映像要大。

另请参阅

|

Baidu
map