設備大小

假定你想要繪製邊長爲1英寸的正方形,爲了完成這一操作,程序員/Windows操作系統 需要知道在視頻顯示器上多少像素相當於1英寸。GetDeviceCaps函數可以幫助你獲取關於輸出設備(顯示器、打印機)物理尺寸的信息。

 

視頻顯示器和打印機是兩種完全不同的設備。對於“Resolution”(分辨率)一詞的用法是二者最大的不同!對於打印機而言,分辨率表示每英寸的墨點數。例如,大多數激光打印機擁有300×600 dots/inch的分辨率。而對於顯示器而言,分辨率通常表示橫向或者縱向上的總像素數量,例如,1024×768像素。人們不可能告訴你打印機的一頁紙上橫向或者縱向的像素數量;人們也不可能告訴你在他們的顯示器上,每英寸能包含多少像素!

歸納起來:

打印機:分辨率單位爲“dots/inch”;

顯示器:分辨率單位爲“橫向/縱向總像素數”

在下文的翻譯中,“分辨率”一詞將嚴格表示在 某一度量單位內的像素數,度量單位一般爲英寸。(也就是 像素/英寸)“Pixel Size”或者“Pixel Dimension”(以像素爲單位的尺寸,以像素爲單位的大小,注意可不是一個像素的尺寸哦)來表示顯示器橫向、縱向的總像素數量。“metrical size”或者“metrical dimension”表示以英寸、毫米爲單位的顯示區域(如顯示器的屏幕,打印機的紙張的可打印區域)的尺寸。使用“像素數量”/“度量尺寸”就得到了分辨率,如:1024像素/5英寸。

當今使用windows操作系統的顯示器,橫向長度要比縱向多出33%的,也就是橫向、縱向比爲1.33:1,或者更通俗的講是4:3,該比例可以追溯到愛迪生髮明電影,直到1953年出現寬屏投影出現爲止,該比例一直是顯示移動圖像的標註比例。電視機也是4:3的橫向、縱向比。

然而windows應用程序不該假定顯示器總是擁有4:3的橫縱比,做文字處理的人們更傾向於選擇一款與真實紙張形狀相似的顯示器。除了4:3比例外,另外一種可選的比例是3:4。

如果一款設備的橫向分辨率等於縱向分辨率,那麼我們就稱該設備爲“正方像素”,在現如今,使用windows操作系統的大多數顯示器均具備正方像素,但是並不是全都如此。所以你的應用程序不能總是假定設備具備正方像素。當windows剛剛面世的時候(那時候就不是正方像素),標準的視頻適配卡(顯卡)是ibm的Color Graphics Adapter(CGA),該顯卡具備顯示640×200像素的能力,EGA顯卡:640×350像素;還有諸如720×348像素;所有的顯卡均使用4:3縱橫比的顯示器,但是橫向、縱向的像素數量之比並不是4:3。如,640×350,橫縱比爲:1.829。物理屏幕爲4:3,但是像素比卻不爲4:3,那麼就不是正方像素了。

對於使用windows操作系統的用戶而言,確定顯示器的像素尺寸很容易,如圖:

你可能會會發現如下像素大小(Pixel dimension):

640×800;

800×600;

1024×768;

1280×1024;(這個不是4:3,是個例外)

1600×1200;

上述均是4:3,如何配以4:3的顯示器,那麼就構成了正方像素。

通過GetSystemMetrics函數(加上SM_CXSCREEN,SM_CYSCREEN參數)可以獲取設備以像素爲單位的大小(Pixel Dimension)。GetDeviceCaps函數(加上HORZRES,VERTRES)也同樣可以完成上述功能。在上述函數中,分辨率代表pixel size(像素大小,像素數量)而不是pixels per metrical unit(像素每度量單位)。

上面論述的是設備的大小(device size),下面的內容非常容易引起混淆。

前兩個設備的能力,HORZSIZE和VERTSIZE,在開發文檔中被記錄爲:“物理屏幕的寬度,以毫米爲單位;物理屏幕的高度,以毫米爲單位”這種說法表面看起來是明確的,直截了當的,合情合理的,但是一旦你想想“這如何實現呢?”去發現上述說法是不現實的,不科學的。例如,給定顯卡和顯示器的類型,windows如何能知道顯示器的物理尺寸呢?如果你擁有一臺筆記本電腦(該電腦的顯示驅動能夠準確的知道屏幕的物理尺寸)連接了一臺顯示器到上面,甚至是連接了一臺投影儀呢?windows如何知道屏幕大小??

在16位的windows(windows nt中也是一樣)中,windows爲屏幕的HORZSIZE、VERTSIZE使用標準的顯示大小,從win95開始,HORZSIZE和VERTSIZE從HORZRES、VERTRES、LOGPIXELSX、LOGPIXELSY的值推導得出。下面詳細論述。

當你從控制面板中選定了顯示的pixel size,你也可以選擇系統字體的大小。爲何會有此選項呢?用於640×480顯示的字體在1024×768或者更高的情況下會變得很小,不便於閱讀。你想要更大的系統字體,在windows中有小字體、大字體。

在傳統的印刷術中,一種字體的字符大小(size)用鎊(point size)表示。一磅近似等於1/72英寸。在電腦印刷術中,字符大小近似1/72英寸。10磅的字體大概是10/72英寸。10磅的字體一般被認爲是易於閱讀的,小於10磅被認爲不易於閱讀。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章