精通Visual C++圖象程式設計------讀書筆記8
透明顯示,是指在將圖象顯示到背景上時,圖象上顏色為某種指定顏色的象素不被顯示出來,而保留該處的背景顯示.被指定的特定顏色叫做透明色。利用透明顯示可以在背景上顯示不規則的圖形,是許多圖象操作的基礎,比如背景動畫.
最直觀的透明顯示方式是遍歷圖象的每一象素,如果象素的顏色不等於透明色,則顯示該象素,否則不顯示.但這種方法的缺陷是致命的,其實現速度太慢!
使用BitBlt函式不僅是顯示點陣圖的最快的方法,而且利用該函式的光柵操作碼引數可以實現點陣圖與背景的不同融合方式,參見第2章的表2-3.通過設定一定的遮蔽點陣圖,並組合使用適當的光柵操作方式,就可以用Bitblt函式來實現點陣圖的透明顯示,其基本的實現步驟如下:
(1)建立一個與需透明顯示點陣圖(源點陣圖b0)同樣大小的單色遮蔽碼點陣圖b1.將遮蔽碼點陣圖中與顯示點陣圖中需透明的象素具有相同位置的象素設定為白色,與不透明的象素具有相同的象素設定為黑色.
(2)用BitBlt函式,以SRCAND光柵操作碼將b1單色遮蔽碼點陣圖與背景點陣圖組合起來,生成點陣圖b2.這時不透明的象素在b2上將顯示為黑色.
(3)將單色遮蔽碼點陣圖b1取反到單色點陣圖b3,用BitBlt函式,以SRCAND光柵操作碼將b3與b0組合起來,得到點陣圖b4.這時b4中透明的象素將顯示為黑色.
(4)用BitBlt函式,以SRCINVERT(異或)光柵操作碼將第三步中得到的點陣圖b4顯示到第二步中得到的點陣圖b2組合起來,得到點陣圖b5.這時b5中背景將透過源點陣圖中的透明色顯示出來
(5)用Bitblt函式,以SRCCOPY光柵操作碼將b5顯示到背景點陣圖中,實現了點陣圖的透明顯示.
相關文章
- 精通Visual C++圖象程式設計---讀書筆記6.2C++程式設計筆記
- 精通Visual C++圖象程式設計---讀書筆記6.1C++程式設計筆記
- 精通Visual C++圖象程式設計---讀書筆記5C++程式設計筆記
- 《精通JavaScript》讀書筆記JavaScript筆記
- 讀書筆記(2)《微精通》筆記
- 程式程式設計2 – Unix環境高階程式設計8章讀書筆記程式設計筆記
- 《程式設計匠藝》讀書筆記程式設計筆記
- 《高質量C++程式設計指南》讀書筆記(一) (轉)C++程式設計筆記
- 《JavaScript程式設計精解》--讀書筆記JavaScript程式設計筆記
- 《Java程式設計思想》讀書筆記一Java程式設計筆記
- 讀書筆記-Java程式設計思想-03筆記Java程式設計
- Java遊戲程式設計讀書筆記(轉)Java遊戲程式設計筆記
- 反應式程式設計讀書筆記程式設計筆記
- 《Java8函數語言程式設計》讀書筆記---類庫Java函數程式設計筆記
- CSAPP 併發程式設計讀書筆記APP程式設計筆記
- C#高階程式設計 讀書筆記C#程式設計筆記
- 《程式設計師的吶喊》讀書筆記程式設計師筆記
- 《程式設計師自我修養》讀書筆記程式設計師筆記
- 《程式設計師修煉之道》讀書筆記程式設計師筆記
- JUC併發程式設計學習筆記(四)8鎖現象程式設計筆記
- C++讀書筆記:字串C++筆記字串
- 《Effective C++》讀書筆記C++筆記
- 《Java8函數語言程式設計》讀書筆記---收集器Java函數程式設計筆記
- 《Go 語言程式設計》讀書筆記(十一)底層程式設計Go程式設計筆記
- 一個程式設計師的讀書筆記:程式設計的反思程式設計師筆記
- 《Go 語言程式設計》讀書筆記(四)介面Go程式設計筆記
- 《Go 語言程式設計》 讀書筆記 (八) 包Go程式設計筆記
- 《Go 語言程式設計》讀書筆記(十)反射Go程式設計筆記反射
- 《Go 語言程式設計》讀書筆記 (三) 方法Go程式設計筆記
- 《JavaScript Dom程式設計藝術》讀書筆記(一)JavaScript程式設計筆記
- python高階程式設計讀書筆記(一)Python程式設計筆記
- 《程式設計師的自我修養》-讀書筆記程式設計師筆記
- C語言程式設計讀書筆記:結構C語言程式設計筆記
- 讀書筆記 - 《程式設計師的自我修養》筆記程式設計師
- Head First Javascript 程式設計讀書筆記(一)JavaScript程式設計筆記
- Head First Javascript 程式設計讀書筆記(二)JavaScript程式設計筆記
- Head First Javascript 程式設計讀書筆記(三)JavaScript程式設計筆記
- Head First Javascript 程式設計讀書筆記(四)JavaScript程式設計筆記