懶的更新到blogger了

本站2010年10月以後的,都更新到google docs上了:
連結在這裡

2008/10/02

px , pt 和 cm

想用網頁加CSS來套印一個固定的圖案(底圖相同,上面文字不同),
馬上遇到的問題是,印出來的東西是用 cm,但是電腦裡大都用 px。
cm 能轉換成 px嗎?
到W3C的網站看到的情況是:
像素 px:pixels, or pixel size of a "typical computer display"
英吋 in:inches (1 inch = 2.54 centimeters)
公分 cm:centimeters
 點 pt:points (1 point = 1/72 inch)

所以 cm , in , pt 應該都算是絕對的單位,可是 px 是相對的單位,它會和解析度(DPI)有關。
記得在顯示器內容看過,電腦裡好像是 96 dpi ,那就用 96 dpi 來算好了。

例如:
6pt = 6 * (1/72) = 1/12 inch ,在96dpi(1英吋長度內有96px )的情況下,
1/12 inch = (1/12) * 96 = 8 px (也就是96dpi的情況下 6pt = 8px)。

馬上實驗...用div...放大10倍好了 60pt=80px :
<div style="width:60pt;height:60pt;background-color:red;">60pt的div</div>
<div style="width:80px;height:80px;background-color:green;">80px的div</div>
60pt的div

80px的div

在我的電腦上看起來,好像真的一樣大耶.....太好了。

所以我有一個10cm寬,3cm高的圖案,也可以轉成大概的px(像素)了:
10 cm = 10 / 2.54 ≒ 3.937 (inch) , 3.937 * 96(dpi) ≒ 378 px
3cm = 3/2.54 ≒ 1.1811 (inch) , 1.1811 * 96(dpi) ≒ 113 px
<div style="width:10cm;height:3cm;background-color:red;">10cm * 3cm 的div</div>
<div style="width:378px;height:113px;background-color:green;">378px * 113px的div</div>
10cm * 3cm 的div

378px * 113px的div

嗯,用肉眼看起來是差不多大小的 ^^
--
結論:
在96dpi的情況下,量出公分的值,先除以2.54再除乘以96就可算出大概的px,
也就是把公分的值乘以大約37.8(從96/2.54 得到)就可以把cm換成px了。
不同dpi時只要把96換成其他的值即可。

沒有留言: