【问题标题】:fonts in milimeter(mm) in flex,how to convert point to mm?flex中以毫米(mm)为单位的字体,如何将点转换为mm?
【发布时间】:2011-02-07 06:52:08
【问题描述】:

我是一名 flex 开发人员,大部分时间我都在处理以点为单位的字体,例如 12、14、23 点等。

现在客户要求来了,要求采用毫米(mm)为单位的字体大小。

我找到了这个mm计算公式,但是我需要找出屏幕DPI,

$mm = ($pixels * $25.4) / dpi

对于 DPI,我使用了 flash.system.Capabilities.screenDPI,但我想这不是找到屏幕 DPI 的完美方法,因为我读过一些博客提到这总是给出 72 的结果。

我找到了这个字体转换公式,(指向毫米)

1 PostScript 点 = 0.352777778 毫米

但这是针对 postscript 字体的,我有点困惑,因为我使用的是 swf 文件作为字体,(在 flex3 中)。

这里有人可以指导我,如何处理这种情况,而且我已经将我的设计阶段尺寸以毫米为单位(如 1000mm X 1000mm),所以在这种情况下,我将使用比率来减小屏幕尺寸

这将是 800mm X 200mm 的屏幕尺寸,所以这里每个测量都必须以 mm 为单位,所以请说明如何处理这种情况。

【问题讨论】:

    标签: apache-flex actionscript-3 flex3 flex4 mxml


    【解决方案1】:

    点通常是 1/72 英寸。由于 1 英寸等于 25.4 毫米,您可以使用以下公式安全地将点转换为毫米

    var nFontSizeInMM:Number = (nFontSizeInPoint / 72) * 25.4;
    

    只有在处理以像素为单位的字体大小时,您才需要担心 DPI。

    参考 Wiki

    【讨论】:

    • 不,您确实需要处理 DPI:您计算中的 72 是 DPI 值。请记住,您正在处理像素而不是点:flex 真的不知道您的像素实际上有多大。
    • 字体大小总是以磅为单位而不是像素。如您所见,我没有处理 DPI。
    【解决方案2】:

    不幸的是,Flash 总是会告诉您您正在以 72 DPI 运行,而在大多数系统中,甚至操作系统都不知道像素实际上有多大——人们很少“正确”设置,尤其是 Windows 不能很好地处理更改 DPI 设置的人。

    我们所做的是假设 96 DPI,因为这是 Windows 通常期望的。

    【讨论】:

      猜你喜欢
      • 2014-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-15
      • 2020-05-10
      • 1970-01-01
      • 2011-10-22
      相关资源
      最近更新 更多