Apache flex flex中以毫米(mm)为单位的字体,如何将点转换为毫米?
我是一名flex开发人员,大部分时间我都在处理点字体,比如12点、14点、23点等等 现在,客户的要求来了,要求以毫米(mm)为单位的字体大小 我找到了这个mm计算公式,但我需要找出屏幕DPI $mm=($pixels*$25.4)/dpi 对于DPI,我使用了flash.system.Capabilities.screenDPI,但我想这并不是找到屏幕DPI的完美方法,因为我读过一些博客,其中提到这通常会得到72 我找到了字体转换的公式(指向mm) 1个PostScript点=0.3527778毫米 但这是针对postscript字体的,我有点困惑,因为我使用swf文件作为字体(在flex3中) 这里有人能指导我如何处理这种情况吗?我的设计阶段的尺寸是mm(比如1000mm X 1000mm),所以在这种情况下,我将使用比率来减小屏幕尺寸Apache flex flex中以毫米(mm)为单位的字体,如何将点转换为毫米?,apache-flex,actionscript-3,flex3,flex4,mxml,Apache Flex,Actionscript 3,Flex3,Flex4,Mxml,我是一名flex开发人员,大部分时间我都在处理点字体,比如12点、14点、23点等等 现在,客户的要求来了,要求以毫米(mm)为单位的字体大小 我找到了这个mm计算公式,但我需要找出屏幕DPI $mm=($pixels*$25.4)/dpi 对于DPI,我使用了flash.system.Capabilities.screenDPI,但我想这并不是找到屏幕DPI的完美方法,因为我读过一些博客,其中提到这通常会得到72 我找到了字体转换的公式(指向mm) 1个PostScript点=0.352777
这将是800mm X 200mm的屏幕尺寸,因此这里的每个测量都必须以mm为单位,因此请解释如何处理这种情况。点通常为1/72英寸。由于1英寸等于25.4毫米,您可以使用以下公式安全地将点转换为毫米
var nFontSizeInMM:Number = (nFontSizeInPoint / 72) * 25.4;
您不需要担心DPI,因为只有在处理以像素为单位的字体大小时,DPI才相关
参考文献
不幸的是,Flash总是告诉你你的运行速度是72 DPI,而在大多数系统中,即使是操作系统也不知道像素的实际大小——人们很少“正确”设置,尤其是在Windows无法很好地处理人们更改DPI设置的情况下
我们要做的是假设96 DPI,因为这是Windows通常期望的。不,您确实需要处理DPI:计算中的72是DPI值。请记住,您处理的是像素而不是点:flex确实不知道您的像素实际有多大。字体大小总是以点而不是像素指定的。正如你可能看到的,我没有处理过DPI。