透明顯示原理及其實現

2021-06-01 06:54:02 字數 911 閱讀 8412

圖示顯示原理

其實,windows中隨處可見的圖示就是乙個透明點陣圖的典型例項。

圖示是由兩個單獨的點陣圖組成的。第乙個點陣圖是由黑色(顏色位全為0)背景與彩色圖示圖案組成的,該位圖將與當前螢幕顯示通過異或(xor)操作結合起來,故稱其為xor點陣圖。第二個點陣圖是由白色(顏色位全為1)背景與黑色(顏色位全為0)圖示圖案組成的,該位圖將與當前螢幕顯示通過與(and)操作結合起來,故稱其為and點陣圖。圖示的顯示是通過兩個步驟完成的:

當前螢幕顯示與and點陣圖通過and操作結合起來;

當前螢幕顯示與xor點陣圖通過xor操作結合起來。

大家知道,1與任何數值and操作的結果將維持原數值,而0與任何數值and操作的結果則是0,因此在步驟1中,and點陣圖中白色(1)與螢幕顯示經過and操作後被原色彩遮蔽,而黑色(0)則將原色彩遮蔽。步驟1結束後,螢幕上將留下乙個黑色的圖示圖案。在隨後的步驟2中,由於0與任何數值異或的結果都將是原數值,因此,xor點陣圖與螢幕顯示經過異或操作後,點陣圖和螢幕中的黑色部分都將被各自對應的彩色部分遮蔽。步驟2結束後,乙個形狀不規則的圖示圖案就出現在螢幕上了。這就是圖示顯示的原理。

實現**(vc)

畫透明位圖通常的方法是使用遮罩。所謂遮罩就是一張黑白雙色的點陣圖,他和要透明的點陣圖是對應的,遮罩描述了點陣圖中需要透明的部分,透明的部分是黑色的,而不透明的是白色的,白色的部分就是透明的部分。 

假設圖a是要畫的透明位圖,圖b是遮罩,圖a上是乙個大寫字母a,字母是紅色的,背景是黑色的,圖b背景是白色的,上面有乙個黑色的字母a和圖a的形狀是一樣的。 

比如我們要在一張藍天白雲的背景上透明地畫圖a,就是只把紅色的字母a畫上去。我們可以先將圖b和背景進行與操作,再把圖b和背景進行或操作就可以了。

bool drawtransparentbmp(hdc hdc, hbitmap hbmp, rect &rect, colorref colortrans)

ARP原理及其實現方法

arp原理及其實現方法 在區域網中,是通過arp協議來完成ip位址轉換為第二層實體地址 即mac位址 的。arp協議對網路安全具有極其重要的意義。通過偽造ip位址和mac位址實現arp欺騙,能夠在網路中產生大量的arp通訊量使網路阻塞。arp協議是 address resolution protoc...

短址原理及其實現

url 演算法google 資料庫瀏覽器 伺服器 前言 最近看了一些關於短址 short url 方面的一些部落格,有些部落格說到一些好的東西,但是,也不是很全,所以,這篇部落格算是對其它部落格的乙個總結吧。介紹 短址,顧名思義,就是把長的 url 轉成短的 url,現在提供這種服務的有很多公司,我...

跳表的原理及其實現

作用 目的 跳表作為一種資料結構通常用於取代平衡樹。起因平衡樹可以用於表示抽象的資料型別如字典和有序鍊錶,它通過樹旋轉 tree rotation 操作強制使樹結構保持平衡來保證節點搜尋的效率。在資料為隨機插入的情況下,平衡樹效能表現良好 但資料為順序插入或者需要刪除節點的情況下,平衡樹的效能就會有...