青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

今天有人在QQ群里問GDI能不能支持帶alpha通道的線條繪制?
大家的答案當然是否定的,很多人推薦用GDI+。

一個基本的圖形引擎要包括幾個方面的支持:位圖繪制,文字繪制,矢量繪制(如矩形,線條)。
可惜GDI這個20多年前發(fā)明的老古董,對這幾項的繪制, 除了位圖繪制可以通過AlphaBlend支持alpha通道,其他繪制都不支持alpha通道。
那有沒有方法讓能通過純GDI讓文字和矢量的繪制也支持alpha通道呢?

討論這個問題之前,我們先看一下用GDI函數(shù)在支持alpha通道的DC上繪制會發(fā)生什么? 這里 有人討論過這個問題。
當然我們也可以自己測試,測試結(jié)果是GDI函數(shù)會把繪制覆蓋目標像素的alpha通道改都改成0, 也 就是說如果畫一條線條, 線條通過的位置的alpha通道都回被改成0。

實際上我們可以利用系統(tǒng)的這個特性,結(jié)合AlphaBlend函數(shù)實現(xiàn)alpha通道的文字和矢量圖形繪制。

具體做法大概如下:
1. 創(chuàng)建內(nèi)存DC和一幅32bit的DIB Section, 將位圖選入DC
2. 將位圖的所有字節(jié)全都改成0xFF
3. 在內(nèi)存DC上用文字和矢量 GDI函數(shù) (如DrawText, Rectangle)繪制東西
4. 遍歷所有像素,發(fā)現(xiàn)alpha通道為0 (表示該區(qū)域被繪制過),則將 alpha通道改成我們需要的alpha值;否則,則將像素的alpha通道改成0 (表示沒有內(nèi)容繪制上去)
5. 最后通過AlphaBlend將生成好的DIB Section合成繪制到目標區(qū)域

通過上面這種方法, 我們可以實現(xiàn)帶alpha通道的矢量和文字繪制,我猜測GDI+應(yīng)該也是通過類似這種修改像素的方法實現(xiàn)的。

當然,這種方法因為效率問題, 建議一些簡單的繪制可以考慮 (如果不想引入GDI+), 如果大規(guī)模應(yīng)用就要仔細斟酌了。

微軟當初引入GDI+,部分原因就是因為GDI不支持alpha通道,可惜GDI+的效率是如此臭名昭著, 大家大部分時候都是盡量避免引入,很多時候我們引入GDI+只是為了使用它的圖像編解碼功能。

還好技術(shù)總是不斷進步,如果你的程序不用考慮XP(現(xiàn)在看來還要過幾年), Vista之后系統(tǒng)為我們提供了高效的圖形支持:
圖像編解碼可以用WIC,文字操作可以用DirectWrite,圖形渲染可以用Direct2D  (既支持alpha通道,又支持GPU加速), 實際上IE9之后的瀏覽器都已采用Direct2D開發(fā)。
posted on 2014-08-26 00:22 Richard Wei 閱讀(5315) 評論(3)  編輯 收藏 引用 所屬分類: windows desktop

FeedBack:
# re: 如何基于純GDI實現(xiàn)alpha通道的矢量和文字繪制
2014-08-26 10:44 | 語音群呼
支持下!語音群呼www.huixun35.com  回復(fù)  更多評論
  
# re: 如何基于純GDI實現(xiàn)alpha通道的矢量和文字繪制
2014-09-07 17:34 | bukebushuo
設(shè)置0xFF那一步?jīng)]必要  回復(fù)  更多評論
  
# re: 如何基于純GDI實現(xiàn)alpha通道的矢量和文字繪制
2014-11-16 10:56 | cosim
是哪個QQ群?  回復(fù)  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲视频在线视频| 久久亚洲一区二区| 亚洲欧美在线免费| 一本色道久久88综合亚洲精品ⅰ | 久久久久久久网站| 欧美在线网站| 久久午夜电影网| 欧美国产丝袜视频| 国产精品日韩欧美大师| 国产精品尤物福利片在线观看| 国产一区二区三区在线观看免费| 欧美精品色综合| 国产精品xxxav免费视频| 国产精品日本| 亚洲国产精品悠悠久久琪琪| 亚洲毛片播放| 久久成人人人人精品欧| 免费在线亚洲欧美| 一区二区日韩伦理片| 久久久久久久久久久久久9999 | 欧美视频一区二区| 欧美性猛交xxxx乱大交退制版| 国产精品毛片a∨一区二区三区|国 | 欧美精品在线看| 国产啪精品视频| 亚洲精品视频在线观看网站| 亚洲精品欧美极品| 亚洲女女做受ⅹxx高潮| 欧美成人伊人久久综合网| 在线视频欧美一区| 欧美精彩视频一区二区三区| 国产日产欧产精品推荐色| 亚洲欧洲综合另类在线| 欧美专区日韩专区| 亚洲午夜精品久久久久久app| 欧美国产精品日韩| 亚洲欧洲在线一区| 亚洲第一视频| 裸体丰满少妇做受久久99精品| 国产自产2019最新不卡| 久久精品一级爱片| 欧美专区第一页| 精品二区视频| 欧美国产在线观看| 欧美日韩视频一区二区| 在线中文字幕一区| 亚洲欧美国产77777| 久久久成人精品| 午夜在线视频观看日韩17c| 翔田千里一区二区| 亚洲视频二区| 亚洲二区在线视频| 日韩网站在线| 国产在线精品自拍| 欧美黄色一区| 国产精品免费视频xxxx| 久久手机精品视频| 欧美日韩视频在线观看一区二区三区 | 欧美诱惑福利视频| 欧美成人69av| 久久久精品国产99久久精品芒果| 欧美顶级少妇做爰| 午夜国产欧美理论在线播放| 久久久一本精品99久久精品66| 亚洲免费av网站| 久久精品理论片| 伊人蜜桃色噜噜激情综合| 亚洲电影av| 国模私拍一区二区三区| 亚洲精品影院| 亚洲黄色免费网站| 久久人人爽国产| 久久精品99国产精品日本| 欧美精品国产精品| 亚洲国产婷婷| 99国产精品| 欧美另类在线播放| 亚洲人成亚洲人成在线观看图片| 伊人久久大香线蕉综合热线| 久久国产主播精品| 欧美成在线视频| 亚洲精品色婷婷福利天堂| 一本色道久久综合亚洲精品小说| 欧美一区二区三区在| 欧美成人免费全部| 亚洲性人人天天夜夜摸| 夜夜嗨网站十八久久| 国产精品一区免费视频| 久久伊人一区二区| 欧美猛交免费看| 久久精品成人一区二区三区| 玖玖视频精品| 亚洲欧美久久久久一区二区三区| 久久精品视频免费播放| 一区二区福利| 欧美在线三区| 国产精品99久久久久久久女警| 亚洲一区www| 亚洲国产一区二区三区a毛片| 亚洲少妇一区| 亚洲精选91| 久久久精品动漫| 亚洲免费影视| 欧美国产视频一区二区| 久久久久久久久久久久久9999| 欧美日韩国产亚洲一区| 美女精品视频一区| 国产精品羞羞答答| 99精品欧美一区二区三区| 亚洲高清免费视频| 欧美一区午夜精品| 亚洲一区二区三区777| 欧美aⅴ99久久黑人专区| 久久国产精品色婷婷| 欧美三级视频在线观看| 欧美国产日本在线| 一区在线播放| 久久精品国产一区二区三| 午夜精品美女久久久久av福利| 欧美精品18+| 亚洲国产精品va在看黑人| 韩国一区二区在线观看| 亚洲在线免费观看| 午夜精品在线看| 国产精品免费观看在线| 国产精品99久久久久久人| 在线亚洲观看| 欧美性猛交xxxx乱大交蜜桃| 亚洲精品一二三| 一二三区精品| 欧美视频日韩视频| 一区二区三区四区五区视频| 一本色道**综合亚洲精品蜜桃冫| 欧美成人免费小视频| 欧美高清视频一区二区三区在线观看| 国产原创一区二区| 久久久99国产精品免费| 麻豆精品视频在线观看| 永久免费视频成人| 欧美成人第一页| 亚洲区一区二| 亚洲在线观看| 国产亚洲欧美一区二区| 欧美有码在线视频| 美脚丝袜一区二区三区在线观看 | 欧美激情一区二区三区| 激情一区二区| 久久久久综合| 欧美黑人国产人伦爽爽爽| 亚洲高清视频一区二区| 欧美韩国日本综合| 亚洲精品久久久久| 亚洲永久免费精品| 国产日韩欧美日韩大片| 久久精品国产一区二区三| 亚洲电影中文字幕| 一区二区三区av| 国产欧美日韩在线视频| 美女精品一区| 中文av一区特黄| 久久在线免费视频| 一本色道久久综合亚洲精品按摩 | 日韩视频第一页| 国产精品一级久久久| 久久久免费精品视频| 亚洲欧洲一区二区三区久久| 亚洲尤物影院| 在线观看日韩av先锋影音电影院| 欧美国产精品劲爆| 亚洲一区影音先锋| 欧美激情一区二区三区 | 亚洲国产精品久久久久婷婷884| 欧美日韩成人在线视频| 久久爱www久久做| 日韩视频永久免费观看| 久久频这里精品99香蕉| 一本综合精品| 在线免费精品视频| 国产精品卡一卡二卡三| 欧美jizz19hd性欧美| 亚洲一区在线看| 亚洲精品欧美专区| 麻豆九一精品爱看视频在线观看免费| 一区二区三区鲁丝不卡| 精品福利av| 国产一区二区在线观看免费播放| 欧美日韩1区| 久久人人爽爽爽人久久久| 在线一区视频| 亚洲精品久久久久久久久久久久久 | 亚洲国产美女精品久久久久∴| 欧美性大战久久久久| 欧美大色视频| 老司机精品视频网站| 久久se精品一区精品二区| 一本色道久久综合亚洲精品高清 | 欧美在线视频导航| 中文国产成人精品久久一| 亚洲人体偷拍| 亚洲欧洲日韩综合二区|