点对点转换

dop*_*ime 3 macos cocoa quartz-2d

在Mac OS X上,我需要将点测量转换为像素测量.

我知道的公式是

pixel   = point * resolution (in terms of dpi) / 72
Run Code Online (Sandbox Code Playgroud)

我有几个我想要转换为像素的测量.虽然反向案件也是可能的.

如何在Cocoa或Quartz中做到这一点?它取决于轴吗?根据点,Y轴上5个像素的平均值与X轴上的5个像素相同?或者可以安全地假设X轴和Y轴的分辨率相同?

请注意,我不想对解决方案做出任何假设.

CRD*_*CRD 6

您可能不希望将任何内容转换为像素.OS X现在可用于 ; 例如,当您绘制一个矩形时,您将以点为单位给出其尺寸,而不是像素.

OS X Quartz点与(计算机)打印点有关,但不一样- 两者曾经相同,72点= 1".但WYSIWYG已成为"某种规模"和72点(注意因为屏幕像素密度增加,屏幕上的像素不是物理英寸.但是72点仍然是"抽象"英寸.

在OS X中,您可以绘制点,操作系统负责将这些点映射到屏幕上的物理像素; 大致转换为一定密度的屏幕被视为72ppi(像素/英寸)或1像素/点,而更高密度的屏幕被视为144ppi或2像素/点 - 例如这些是分配给标准和Retina的ppi截图.

如果你真的,真的需要知道一个点转换成像素,你可以找到,但这取决于窗口所在的屏幕.

有关所有这些的详细信息,您可以从点对应于像素开始,然后阅读OS X的其他高分辨率指南,该引用是其中的一部分.如何找到支持商店映射,如果你真的,真的需要知道,是否涵盖.

HTH