精通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++程式設計筆記
- 讀書筆記(2)《微精通》筆記
- 反應式程式設計讀書筆記程式設計筆記
- 《Java程式設計思想》讀書筆記一Java程式設計筆記
- CSAPP 併發程式設計讀書筆記APP程式設計筆記
- 讀書筆記-Java程式設計思想-03筆記Java程式設計
- 《JavaScript程式設計精解》--讀書筆記JavaScript程式設計筆記
- 《Java8函數語言程式設計》讀書筆記---類庫Java函數程式設計筆記
- 《程式設計師修煉之道》讀書筆記程式設計師筆記
- 《程式設計師自我修養》讀書筆記程式設計師筆記
- python高階程式設計讀書筆記(一)Python程式設計筆記
- C#高階程式設計 讀書筆記C#程式設計筆記
- JUC併發程式設計學習筆記(四)8鎖現象程式設計筆記
- 《Effective C++》讀書筆記C++筆記
- C++讀書筆記:字串C++筆記字串
- 《Java8函數語言程式設計》讀書筆記---收集器Java函數程式設計筆記
- 《Go 語言程式設計》讀書筆記(十一)底層程式設計Go程式設計筆記
- 《Go 語言程式設計》讀書筆記(十)反射Go程式設計筆記反射
- 《Go 語言程式設計》 讀書筆記 (八) 包Go程式設計筆記
- 《Go 語言程式設計》讀書筆記(四)介面Go程式設計筆記
- 《Go 語言程式設計》讀書筆記 (三) 方法Go程式設計筆記
- C語言程式設計讀書筆記:結構C語言程式設計筆記
- 《JavaScript Dom程式設計藝術》讀書筆記(一)JavaScript程式設計筆記
- 《程式設計師的自我修養》-讀書筆記程式設計師筆記
- 《Java8函數語言程式設計》讀書筆記---常用的流操作Java函數程式設計筆記
- C++核心程式設計筆記C++程式設計筆記
- Head First設計模式讀書筆記設計模式筆記
- 大話設計模式 讀書筆記設計模式筆記
- 《Go 語言程式設計》讀書筆記 (二)函式Go程式設計筆記函式
- 【讀書筆記】Java併發程式設計的藝術筆記Java程式設計
- 《重構:改善既有程式碼的設計》讀書筆記筆記
- Java 併發程式設計實踐 讀書筆記四Java程式設計筆記
- 《重構-改善既有程式碼的設計》讀書筆記筆記
- 《Go 語言程式設計》讀書筆記 (九) 命令工具集Go程式設計筆記
- JavaScript DOM 程式設計藝術(第2版) 讀書筆記JavaScript程式設計筆記
- 《重構 改善既有程式碼的設計》 讀書筆記(十五)筆記