freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

gdi圖像程序設計手冊-資料下載頁

2025-06-26 08:46本頁面
  

【正文】 印方向和每像素采樣,等等)存儲在文件中并使用標簽來排列這些信息??梢愿鶕?jù)需要通過批準和添加新標簽來擴展 TIFF 格式。2.圖元文件GDI+ 提供 Metafile 類,以便您能夠記錄和顯示圖元文件。圖元文件,也稱為矢量圖像,是一種存儲為一系列繪圖命令和設置的圖像。Metafile 對象記錄的命令和設置可以存儲在內(nèi)存中或保存到文件或流。GDI+ 能夠顯示用以下格式存儲的圖元文件: Windows 圖元文件 (WMF) 增強性圖元文件 (EMF) EMF+ GDI+ 能夠用 EMF 和 EMF+ 格式記錄圖元文件,但不能使用 WMF 格式。EMF+ 是 EMF 的擴展,可存儲 GDI+ 記錄。EMF+ 格式有兩種變體:“EMF+ 唯一”和“EMF+ 雙重”。“EMF+ 唯一”圖元文件只包含 GDI+ 記錄。這樣的圖元文件可由 GDI+ 顯示,但不可由 GDI 顯示。“EMF+ 雙重”圖元文件包含 GDI+ 和 GDI 記錄?!癊MF+ 雙重”圖元文件的每個 GDI+ 記錄與一個備用 GDI 記錄成對出現(xiàn)。這樣的圖元文件可由 GDI+ 或 GDI 顯示。下面的示例顯示了一個以前另存為文件的圖元文件。該圖元文件在顯示時,左上角的位置是 (100,100)。myMetafile = new Metafile(L, hdc)。myGraphics = new Graphics(myMetafile)。 myPen = new Pen(Color(255, 0, 0, 200))。 myGraphicsSetSmoothingMode(SmoothingModeAntiAlias)。 myGraphicsDrawLine(myPen, 0, 0, 60, 40)。delete myGraphics。delete myPen。delete myMetafile。3.繪制、定位和克隆圖像您可以使用 Bitmap 類來加載和顯示光柵圖像,還可以利用 Metafile 類來加載和顯示矢量圖像。Bitmap 和 Metafile 類從 Image 類中繼承。要顯示矢量圖像,需要有 Graphics 對象和 Metafile 對象。要顯示光柵圖像,需要有 Graphics 對象和 Bitmap 對象。Graphics 對象提供了 DrawImage 方法,該方法接收 Metafile 或 Bitmap 對象作為參數(shù)。下面的示例從文件 構造 Bitmap 對象并顯示位圖。圖像左上角的目標點 (10,10) 在第二個和第三個參數(shù)中指定。Image myImage(L)。(amp。myImage, 10, 10)。下面的插圖顯示了該圖像。您可以從各種各樣的圖形文件格式(BMP、GIF、JPEG、EXIF、PNG、TIFF 和 ICON)中構造 Bitmap 對象。下面的示例從各種各樣的文件類型中構造 Bitmap 對象,然后顯示位圖:Image myBMP(L)。Image myEMF(L)。Image myGIF(L)。Image myJPEG(L)。Image myPNG(L)。Image myTIFF(L)。(amp。myBMP, 10, 10)。(amp。myEMF, 220, 10)。(amp。myGIF, 320, 10)。(amp。myJPEG, 380, 10)。(amp。myPNG, 150, 200)。(amp。myTIFF, 300, 200)。Bitmap 類提供了 Clone 方法,可用于制作現(xiàn)有 Bitmap 對象的副本。Clone 方法帶有源矩形參數(shù),可用于指定要復制的原始位圖的部分。下面的示例通過克隆現(xiàn)有 Bitmap 對象的上半部分來創(chuàng)建 Bitmap 對象。然后繪制兩幅圖像。Bitmap* originalBitmap = new Bitmap(L)。RectF sourceRect( , , (REAL)(originalBitmapGetWidth()), (REAL)(originalBitmapGetHeight())/)。Bitmap* secondBitmap = originalBitmapClone(sourceRect, PixelFormatDontCare)。(originalBitmap, 10, 10)。(secondBitmap, 100, 10)。下面的插圖顯示這兩幅圖像。4. 裁切和縮放圖像您可以使用 Graphics 類的 DrawImage 方法來繪制并定位矢量圖像和光柵圖像。DrawImage 是一種重載方法,因此您有數(shù)種方式為它提供參數(shù)。DrawImage 方法的一種變體接收 Bitmap 對象和 Rectangle 對象。該矩形指定了繪圖操作的目標,即它指定了將要在其內(nèi)繪圖的矩形。如果目標矩形的大小與原始圖像的大小不同,原始圖像將進行縮放,以適應目標矩形。下面的示例將同一圖像繪制了三次:一次沒有縮放,一次使用擴展,一次使用壓縮:Bitmap myBitmap(L)。Rect expansionRect(80, 10, 2 * (), ())。Rect pressionRect(210, 10, () / 2, () / 2)。(amp。myBitmap, 10, 10)。(amp。myBitmap, expansionRect)。(amp。myBitmap, pressionRect)。下面的插圖顯示了這三張圖片。DrawImage 方法的一些變體帶有源矩形參數(shù)和目標矩形參數(shù)。源矩形參數(shù)指定原始圖像要繪制的部分。目標矩形參數(shù)指定將要在其內(nèi)繪制該圖像指定部分的矩形。如果目標矩形的大小與源矩形的大小不同,圖片將會縮放,以適應目標矩形。下面的示例從文件 中構造 Bitmap 對象。整個圖像繪制時在 (0,0) 處沒有縮放。然后將該圖像的一小部分繪制兩次:一次使用壓縮,一次使用擴展。Bitmap myBitmap(L)。 // The rectangle (in myBitmap) with upperleft corner (80, 70), // width 80, and height 45, encloses one of the runner39。s hands.// Small destination rectangle for pressed hand.Rect destRect1(200, 10, 20, 16)。// Large destination rectangle for expanded hand.Rect destRect2(200, 40, 200, 160)。// Draw the original image at (0, 0).(amp。myBitmap, 0, 0)。// Draw the pressed hand.( amp。myBitmap, destRect1, 80, 70, 80, 45, UnitPixel)。// Draw the expanded hand. ( amp。myBitmap, destRect2, 80, 70, 80, 45, UnitPixel)。 myBitmap, destRectangle2, sourceRectangle, )。下面的插圖顯示了未縮放的圖像,以及壓縮的和擴展的圖像部分。坐標系統(tǒng)和變形GDI+ 提供了全局變形和頁面變形,以便您可以使繪制的項目變形(旋轉(zhuǎn)、縮放、平移,等等)。兩種變形還允許您使用多種坐標系統(tǒng)。 1. 坐標系統(tǒng)類型GDI+ 使用三個坐標空間:全局、頁面和設備。進行 (myPen, 0, 0, 160, 80) 調(diào)用時,傳遞到 DrawLine 方法的點((0, 0) 和 (160, 80))位于全局坐標空間中。坐標先要通過變形序列,然后 GDI+ 才能在屏幕上繪制線條。一種變形將全局坐標轉(zhuǎn)換為頁面坐標,另一種變形將頁面坐標轉(zhuǎn)換為設備坐標。假定您想使用原點位于工作區(qū)的主體而非左上角的坐標系統(tǒng)。例如,您需要讓原點位于距工作區(qū)左邊緣 100 像素、距頂部 50 像素的位置。下圖顯示了這樣的坐標系統(tǒng)。進行 (myPen, 0, 0, 160, 80) 調(diào)用時,可獲得下面插圖中顯示的線條。下表顯示了三種坐標空間中線條終點的坐標:全局(0, 0) 到 (160, 80)頁(100, 50) 到 (260, 130)設備(100, 50) 到 (260, 130)請注意,頁面坐標空間的原點在工作區(qū)的左上角,情況將總是如此。另外請注意,由于度量單位是像素,所以設備坐標與頁面坐標是相同的。如果將度量單位設置為像素以外的其他單位(例如英寸),設備坐標將不同于頁面坐標。將全局坐標映射到頁面坐標的變形稱為“全局變形”,保存在 Graphics 類的 Transform 屬性中。在前面的示例中,全局變形是在 x 方向平移 100 個單位、在 y 方向平移 50 個單位。下面的示例設置了 Graphics 對象的全局變形,并隨后使用該 Graphics 對象來繪制前圖中顯示的線條:(, )。(amp。myPen, 0, 0, 160, 80)。將頁面坐標映射到設備坐標的變形稱為“頁面變形”。Graphics 類提供了用于操作頁面變形的 PageUnit 和 PageScale 屬性。Graphics 類還提供了兩個只讀屬性:DpiX 和 DpiY,可用于檢查顯示設備每英寸的水平點和垂直點。Graphics 類的 PageUnit 屬性可用于指定像素以外的其他度量單位。下面的示例從 (0, 0) 至 (2, 1) 繪制線條,其中點 (2, 1) 位于點 (0, 0) 的右邊 2 英寸和下邊 1 英寸處:(UnitInch)。(amp。myPen, 0, 0, 2, 1)。注意如果您在構造鋼筆時不指定鋼筆寬度,前面的示例將繪制一條一英寸寬的線條。您可以在 Pen 構造函數(shù)的第二個參數(shù)中指定鋼筆寬度: Pen myPen(Color(255, 0, 0, 0), 1/()).如果我們假定顯示設備在水平方向和垂直方向每英寸都有 96 個點,則上例中直線的終結點在三個坐標空間中分別具有以下坐標:全局(0, 0) 到 (2, 1)頁(0, 0) 到 (2, 1)設備(0, 0) 到 (192, 96)請注意,由于全局坐標空間的原點在工作區(qū)的左上角,因此頁面坐標與全局坐標相同。您可以合并全局變形和頁面變形,以實現(xiàn)多種效果。例如,假定您想使用英寸作為度量單位,并且想讓坐標系統(tǒng)的原點距工作區(qū)左邊緣 2 英寸、距工作區(qū)頂部 1/2 英寸。下面的示例設置 Graphics 對象的全局變形和頁面變形,然后從 (0, 0) 到 (2, 1) 繪制線條:(, )。(UnitInch)。(amp。myPen, 0, 0, 2, 1)。下圖顯示了線條和坐標系統(tǒng)。如果我們假定顯示設備在水平方向和垂直方向每英寸都有 96 個點,則上例中直線的終結點在三個坐標空間中分別具有以下坐標:全局(0, 0) 到 (2, 1)頁(2, ) 到 (4, )設備(192, 48) 到 (384, 144)2.變形的矩陣表示形式mn 矩陣是以 m 行和 n 列排列的一組數(shù)字。下圖顯示幾個矩陣。您可以通過將單個元素相加來加合兩個尺寸相同的矩陣。下圖顯示了兩個矩陣相加的示例。mn 矩陣可以與 np 矩陣相乘,得到的結果是 mp 矩陣。第一個矩陣的列數(shù)必須與第二個矩陣的行數(shù)相同。例如,42 矩陣可與 23 矩陣相乘,產(chǎn)生 43 矩陣。矩陣的行列的平面點可視為矢量。例如,(2, 5) 是具有兩個組件的矢量,(3, 7, 1) 是具有三個組件的矢量。兩個矢量的點產(chǎn)品定義如下:(a, b) ? (c, d) = ac + bd(a, b, c) ? (d, e, f) = ad + be + cf例如,(2, 3) 和 (5, 4) 的點產(chǎn)品是 (2)(5) + (3)(4) = 22。(2, 5, 1) 和 (4, 3, 1) 的點產(chǎn)品是 (2)(4) + (5)(3) + (1)(1) = 24。請注意,兩個矢量的點產(chǎn)品是數(shù)字,而不是另一個矢量。另外請注意,只有當兩個矢量的組件數(shù)相同時,才能計算點產(chǎn)品。將 A(i, j) 作為矩陣 A 中第 i 行和第 j 列的項。例如,A(3, 2)是矩陣 A 中第 3 行和第 2 列的項。假定 A、B 和 C 是矩陣,且 AB = C,則 C 的項計算如下:C(i, j) =(A 的第 i 行)?(B 的第 j 列)下圖顯示了矩陣相乘的幾個示例。如果您將平面中的點視為 12 矩陣,則可通過將該點乘以 22 矩陣來變形該點。下圖顯示了應用于點 (2, 1) 的幾個變形。前圖中顯示的所有變形都是線性變形。某些其他變形(例如平移)不是線性的,也不能表示為與 22 矩陣相乘的形式。假定您要從點 (2, 1) 開始,將其旋轉(zhuǎn) 90 度,在 x 方向?qū)⑵淦揭?3 個單位,在 y 方向?qū)⑵淦揭?4 個單位??赏ㄟ^先使用矩陣乘法再使用矩陣加法來完成此操作。后面是平移(與 12 矩陣相加)的線性變形(與 22 矩陣相乘)被稱為仿射變形。將仿射變形存儲于一對矩陣(一個用于線性部分,一個用于平移)的替換方案是將整個變形存儲于 33 矩陣。要使其起作用,平面上的點必須存儲于有虛擬第 3 坐標的 13 矩陣。通常的技術是使所有的第 3 坐標等于 1。例如,矩陣 [2 1 1] 代表點 (2, 1)。下圖顯示了表示為與單
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1