複製鏈接
請複製以下鏈接發送給好友

圖形設備接口

鎖定
圖形設備接口(GDI :Graphics Device Interface),它的主要任務是負責系統與繪圖程序之間的信息交換,處理所有Windows程序的圖形輸出
中文名
圖形設備接口
外文名
Graphics Device Interface
任    務
負責系統與繪圖程序的信息交換
函    數
Bltmap

目錄

圖形設備接口相關簡介

在Windows操作系統下,絕大多數具備圖形界面的應用程序都離不開圖形設備接口,我們利用圖形設備接口所提供的眾多函數就可以方便的在屏幕、打印機及其它輸出設備上輸出圖形,文本等操作。圖形設備接口的出現使程序員無需要關心硬件設備及設備驅動,就可以將應用程序的輸出轉化為硬件設備上的輸出,實現了程序開發者與硬件設備的隔離,大大方便了開發工作。
圖形設備接口(GDI)提供了一系列的函數和相關的結構,應用程序可以使用它們在顯示器、打印機或其他設備上生成圖形化的輸出結果。使用GDI函數可以繪製直線、曲線、閉合圖形、路徑、文本以及位圖圖像。所繪製的圖形的顏色和風格依賴於所創建的繪圖對象,即畫筆、筆刷和字體。你可以使用畫筆來繪製直線和曲線,使用筆刷來填充閉合圖形的內部,使用字體來書寫文本。
應用程序通過創建設備環境(DC),可以直接向指定的設備進行輸出。設備環境是一個GDI管理的結構。其中包含一些有關設備的信息,比如它的操作方式及當前的選擇。應用程序可使用設備環境函數來創建DC。GDI將返回一個設備環境句柄,在隨後的調用中,該句柄用於表示該設備。例如,應用程序可以使用該句柄來獲取有關該設備性能的一些信息,諸如它的類型(顯示器、打印機或其他設備),它的顯示界面的尺寸和分辨率等。
應用程序可以直接向一個物理設備進行輸出,比如顯示器或打印機;也可以向一個"邏輯"設備進行輸出,比如內存設備或元文件。邏輯設備嚮應用程序所提供的保存輸出結果的格式,可以很容易地將其發送到物理設備上。一旦應用程序將輸出結果記錄到了一個元文件中,那麼該元文件就可以被使用任意多次,並且該輸出結果可以被髮送到任意多個物理設備上。
應用程序可以使用屬性函數來設置設備的操作方式和當前的選擇。操作方式包括文本和背景顏色,混色方式(也稱為二元光柵操作,用於確定畫筆或筆刷的顏色與繪圖區域現有的顏色如何進行混色),映射方式(用於指定GDI如何將應用程序所用的座標映射到設備座標系統上)。當前的選擇是指繪圖時使用哪個繪圖對象。

圖形設備接口函數

圖形設備接口函數包括以下幾類:
位圖函數(Bltmap)
位圖是一個圖形對象,可將圖像作為文件進行創建、處理(比例縮放、滾動、旋轉和繪製)和存儲。
位圖函數提供了一系列處理位圖的方法。
筆刷函數(Brush)
筆刷是一種繪圖工具,Win32應用程序可使用它繪製多邊形、橢圓形和路徑的內部。繪圖應用程序使用筆刷繪製圖形;字處理應用程序使用筆刷繪製水線;計算機輔助設計(CAD)應用程序使用筆刷繪製截面視圖的內部;電子表格應用程序使用筆刷繪製餅圖的扇形和直方圖的方條。筆刷函數提供了一系列創建和使用筆刷的方法。
剪裁函數(Clipping)
剪裁是一種處理過程,它將輸出到某個區域或路徑中的內容限制在應用程序窗口的顯示區內。剪裁函數提供了一系列處理剪裁區域的方法。
顏色函數(Color)
顏色是組成Win32應用程序所生成的圖片和圖像的一個重要元素。 Win32 API提供了一系列管理和使用畫筆、筆刷、文本和位圖的顏色的函數。
座標空間及映射函數(Coordinate Space and Transformation)
Win32應用程序使用座標空間和映射函數對輸出的圖形進行比例縮放、旋轉、轉換、剪裁和反射。
座標空間是基於笛卡爾座標系統的一個平面空間。該座標系統要求有兩個垂直相交的、長度相等的座標軸。共有4種座標空間:現實座標、頁面座標、設備座標、物理設備座標(顯示區,或桌面,或打印紙的頁面)。映射方式就是改變("映射")對象的大小、方向和形狀的一種算法。
設備環境函數(Device Context)
設備環境是一個結構,它定義了一系列圖形對象及其相關的屬性,以及會影響輸出結果的繪圖方式。這些圖形對象包括:畫筆(用於畫直線),筆刷(用於繪圖和填充),位圖(用於屏幕的拷貝或滾動),調色板(用於定義可用的顏色集),剪裁區(用於剪裁和其他操作),路徑(用於繪圖和畫圖操作)。設備環境函數用於對設備環境進行創建、刪除或獲取信息。
填充圖形函數(Filled Shape)
填充圖形是一些幾何圖形,其輪廓由當前的畫筆繪製,內部由當前的筆刷填充。共有5種填充圖形:橢圓,弦圖,餅圖,多邊形,矩形。填充圖形函數用於對填充圖形進行操作。
字體和文本函數(Font and Text)
字體用於在視頻顯示器或其他輸出設備上繪製文本。Win32 API提供了一系列用於安裝、選擇和查詢各種字體的字體和文本函數。
ICM 2.0函數
Microsoft Windows 98和Windows NT 5.0所使用的顏色管理方案稱為 Image Color Management版本 2.0,或ICM2.0,由一系列函數組成。
直線和曲線函數(Line and Curve)
直線和曲線用於在光柵設備上繪製輸出圖形。一條直線是光柵顯示器上的一系列高亮像素點(或打印紙上的一系列點),由兩個點進行標識:起點和終點。一條規則曲線也是光柵顯示器上的一系列高亮像素點(或打印紙上的一系列點),符合某個二次曲線段的周界(或一部分)。不規則曲線則是由不符合二次曲線段的一系列像素點組成。
元文件函數(Metafile)
元文件是一個結構的集合,這些結構是以與設備無關的格式存儲圖像。設備無關是元文件與位圖的差異之一。與位圖不同,元文件保證是與設備無關的。不過,元文件有一個缺點:它通常比位圖的繪圖速度慢。因此,如果一個應用程序要求有較快的繪圖速度,而不需要具有設備無關性,則應該用位圖代替元文件。
元文件函數提供了一些對元文件進行操作的方法。
多顯示器支持函數(Multple Display Monltors)
每個Windows工作站所支持的顯示器個數是不受限制的。可以用創建鄰接區域的方式安排多個顯示器。每個顯示器的大小和顏色深淺都可以獨立設置。
所有的顯示器屏幕一起構成了一個虛擬屏幕。桌面窗口覆蓋整個虛擬屏幕,而不僅僅是某個顯示屏幕。由於現有的應用程序都要求顯示器具有一個原點座標(0,0),所以虛擬屏幕必須在某個顯示器上包含原點座標(0,0),這個顯示器就被看作是主顯示器。
每個物理顯示設備都由一個HMONITOR類型的顯示器句柄表示。一個顯示器在它的整個生存期間具有相同的HMONITOR值。
任何顯示設備環境(DC)的Win32函數所返回的值都是主顯示器的DC。要想獲取其他顯示器的DC,可使用EnumDisplayMonitors函數。系統對每個顯示器調用回調函數,為該顯示器傳入一個DC值。用户可以使用該DC在該顯示器上繪圖。
繪圖和畫圖函數(Painting and Drawing)
繪圖和畫圖函數為應用程序提供了一系列在窗口中繪圖的方法,以及如何創建和使用顯示設備環境(DC)的方法。
路徑函數(Path)
一個路徑是指一個或多個被填充、被繪製輪廓或既被填充又被繪製輪廓的圖形(或形狀)。Win32應用程序將路徑用作很多用途,在繪圖和畫圖應用程序中使用路徑。計算機輔助設計(CAD)應用程序用路徑來創建剪裁區,繪製不規則形狀的輪廓,以及填充不規則形狀的內部。路徑函數用於創建、改變和繪製路徑。
畫筆函數(Pen)
畫筆是Win32應用程序用於繪製直線和曲線的圖形工具。畫圖應用程序使用畫筆來畫手畫線、直線以及曲線。計算機輔助設計(CAD)應用程序用畫筆來畫可見線、隱藏線、截面線、中心線等等。字處理和桌面出版應用程序用畫筆來畫邊界和水線。電子表格應用程序用畫筆來指明圖表的趨向,以及勾勒直方圖和餅圖的輪廓。畫筆函數提供了一系列使用畫筆的方法。
打印和打印假脱機函數(Printing and Print Spooler)
Microsoft Windows和Windows NT提供了一套完整的函數,使應用程序可以在不同的設備上進行打印,如激光打印機,向量繪圖儀,光柵打印機,以及傳真機等。
矩形函數(Rectangle)
Win32應用程序使用矩形來指定顯示屏幕上或窗口中的一個矩形區域。矩形函數用於對矩形進行操作。
區域函數(Region)
區域是指一個可被填充、着色、轉換和加外框的形狀,包括矩形、多邊形或橢圓(或這幾種形狀的組合),用於完成擊鍵測試(測試光標位置)。
區域函數用於對區域進行操作。