Apple設備中point,磅(pt),pixel的關係與轉換,以及iPhone模擬器與真機的長度關係

  查閱了好多資料都沒有發現有相關的詳細介紹,包括蘋果官方文檔,也是草草帶過。後來是在一個介紹Macbook打印字體的博客中看到的,受到啓發。 函數

  首先說明蘋果設備繪圖的長度單位能夠認爲是point,不是磅(pt)的意思。該point是一個邏輯概念,是獨立於設備的。字體

 

  

圖1.不一樣分辨率屏幕顯示1pointspa

 

  對於傳統常規屏幕,1 point 映射物理屏幕1 pixel。對於Retina的高分屏,1point映射物理屏幕2 pixel。這樣能夠統一圖形在同一種類不一樣型號設備上圖形的大小。3d

  因此在開發的時候,不區分常規屏幕仍是Retina屏幕,在iPhone(3.5 inch)上都是(480 ,360)在Macbook(13 inch)上都是(1280 ,800)。code

  在實際渲染到屏幕上時候,會有個scale 係數將 point 映射到物理 pixel,在傳統屏幕上factor是等於1,Retina屏幕上是等於2,也就是上圖中爲何線寬爲1 point在Retina屏幕上映射線寬爲2 pixel。blog

   對於字體上的磅(pt)轉換到蘋果設備上的方法。目前尚未發現直接支持單位爲磅的函數。可是能夠進行轉換。首先,將pt 和 px單位都統一到英尺開發

 

pt/72 = inch

pixel/dpi = inch

 

   這樣就能夠簡單的進行轉換了文檔

pt * dpi / 72 = pixel 

 

 

  對於傳統屏幕,Macbook屏幕的dpi 是96,iPhone屏幕的dpi 是163。對於Retina屏幕,Macbook屏幕的dpi 是192,iPhone屏幕的dpi 是326。可是對於開發來講,繪製的圖形依然是在以point 爲單位macbook

 

pt * dpi / 72 * scale = point 

 

 

  最後發現,這也是不區分傳統屏幕仍是Retina屏幕的。博客

  若是要保證Macbook和iPhone上的實際長度相同,確定不能用相同的point ,須要經過上述的公式進行換算。還有一點注意的是iPhone模擬器是按照Macbook的dpi來的,而macbook的dpi時低於iPhone的,也就是說Macbook的像素點比iPhone的要大,因此iPhone模擬器要比真機要大。在模擬器上的長度會比實際來的短。

相關文章
相關標籤/搜索