要繪製透明矩形,要用到 blendfunction 這個結構體 和alphablend這個函式 ,方法如下:
cbitmap tempbitmap;//用於繪製矩形的臨時位圖
cdc tempdc;
crect rect(0,0,100,100); // 矩形大小
blendfunction blend;
memset( &blend, 0, sizeof( blend) );
blend.blendop= ac_src_over;
blend.sourceconstantalpha=alpha; // 設定透明度 最大255
tempdc.createcompatibledc(pdc);
tempbitmap.createcompatiblebitmap(pdc,rect.width(),rect.height());
tempdc.selectobject(tempbitmap);
tempdc.fillrect(rect,&cbrush(colorref(fillcolor))); // 將矩形繪製到臨時點陣圖上
pdc->alphablend(0,0,rect.width(),rect.height(),&tempdc,0,0,rect.width(),rect.height(),blend);//將臨時位圖繪製到目標cdc上
tempdc.deletedc();
tempbitmap.deleteobject();
OpenGL繪製半透明物體
一 使用混合來實現半透明效果 混合是什麼呢?混合就是把兩種顏色混在一起。具體一點,就是把某一畫素位置原來的顏色和將要畫上去的顏色,通過某種方式混在一起,從而實現特殊的效果。假設我們需要繪製這樣乙個場景 透過紅色的玻璃去看綠色的物體,那麼可以先繪製綠色的物體,再繪製紅色玻璃。在繪製紅色玻璃的時候,利用...
OpenGL繪製半透明物體技巧
一 使用混合來實現半透明效果 混合是什麼呢?混合就是把兩種顏色混在一起。具體一點,就是把某一畫素位置原來的顏色和將要畫上去的顏色,通過某種方式混在一起,從而實現特殊的效果。假設我們需要繪製這樣乙個場景 透過紅色的玻璃去看綠色的物體,那麼可以先繪製綠色的物體,再繪製紅色玻璃。在繪製紅色玻璃的時候,利用...
WebGL半透明物體的繪製
webgl 中當透明和半透明物體共存時,相關設定不正確的話,物體表面會出現破碎雜亂的斷面,非常影響效果,我們接著就來解決這個問題。完成的展示demo請看 半透明物體和透明物體共存 讓物體實現半透明效果需要用到顏色的 分量。該功能被稱為a混合 alpha blending 或 混合 blending,...