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

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

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

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

實際上我們可以利用系統的這個特性,結合AlphaBlend函數實現alpha通道的文字和矢量圖形繪制。

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

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

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

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

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

FeedBack:
# re: 如何基于純GDI實現alpha通道的矢量和文字繪制
2014-08-26 10:44 | 語音群呼
支持下!語音群呼www.huixun35.com  回復  更多評論
  
# re: 如何基于純GDI實現alpha通道的矢量和文字繪制
2014-09-07 17:34 | bukebushuo
設置0xFF那一步沒必要  回復  更多評論
  
# re: 如何基于純GDI實現alpha通道的矢量和文字繪制
2014-11-16 10:56 | cosim
是哪個QQ群?  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲第一精品影视| 亚洲一区亚洲二区| 欧美一区二区三区免费视频| 亚洲女爱视频在线| 亚洲专区一二三| 欧美一区二区三区视频在线 | 麻豆成人在线播放| 麻豆成人在线| 亚洲在线黄色| 久久av一区二区三区漫画| 精品成人久久| 欧美天堂在线观看| 国产精品日韩专区| 欧美日本二区| 国产精品美女在线| 伊人狠狠色丁香综合尤物| 欧美日韩亚洲精品内裤| 国产精品爽爽爽| 欧美日韩美女在线| 国产欧美一区二区三区另类精品| 欧美丰满高潮xxxx喷水动漫| 欧美日韩精品免费| 狠狠色丁香婷婷综合| 亚洲色图综合久久| 亚洲精品一区二区三区婷婷月 | 国产综合自拍| 一区二区日韩精品| 久久亚洲精品一区| 夜夜狂射影院欧美极品| 91久久精品国产| 久久精品国产第一区二区三区最新章节 | 欧美激情一区二区三区高清视频| 欧美一区网站| 欧美激情视频网站| 欧美激情五月| 欧美国产日本| 国产在线观看精品一区二区三区| 一区二区三区精品视频在线观看| 免费在线视频一区| 欧美一区成人| 久久久精品国产免费观看同学| 欧美精品一区二区在线播放| 欧美精品一区二区三区在线播放| 欧美 日韩 国产精品免费观看| 久久欧美中文字幕| 国产精品综合av一区二区国产馆| 日韩一二三区视频| 亚洲一级在线| 亚洲激情成人在线| 久久久国产成人精品| 国产亚洲精品一区二555| 亚洲欧美精品在线| 亚洲视频第一页| 欧美日韩在线播放| 国产欧美日韩一区二区三区在线观看 | 久久久福利视频| 久久亚洲综合色| 国产欧亚日韩视频| 亚洲高清不卡一区| 久久精品国产亚洲高清剧情介绍| 亚洲尤物在线| 国产一区二区日韩| 久久婷婷影院| 久久综合伊人77777麻豆| 亚洲国产天堂网精品网站| 欧美国产一区二区| 欧美激情按摩| 亚洲天堂男人| 亚洲视频欧美视频| 久久综合伊人77777麻豆| 狠狠色丁香久久婷婷综合丁香 | 亚洲一区一卡| 久久久91精品国产一区二区三区| 欧美日韩在线视频一区| 欧美电影免费观看高清| 国产综合色在线| 亚洲视频一区在线| 午夜精品理论片| 欧美日韩一区视频| 在线视频日韩精品| 亚洲黄一区二区| 亚洲精品乱码久久久久久按摩观| 欧美在线免费观看亚洲| 国产日韩欧美一区在线| 99天天综合性| 欧美中文字幕第一页| 亚洲视频一区二区| 久久激五月天综合精品| 午夜在线视频一区二区区别| 国产视频精品xxxx| 久久精品天堂| 日韩一区二区精品葵司在线| 亚洲区第一页| 国产日韩精品入口| 米奇777在线欧美播放| 欲色影视综合吧| 99视频日韩| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲国产视频一区二区| 在线视频一区二区| 久久九九全国免费精品观看| 日韩亚洲欧美在线观看| 激情综合中文娱乐网| 欧美三级精品| 91久久黄色| 麻豆免费精品视频| 性色av香蕉一区二区| 在线一区二区三区四区| 亚洲精品美女在线观看播放| 国产精品剧情在线亚洲| 一区二区三区波多野结衣在线观看| 国际精品欧美精品| 国产精品女主播| 国产精品成人一区二区三区夜夜夜| 久久精品在线视频| 久久综合五月| 久久精品最新地址| 亚洲图片欧美日产| 欧美欧美午夜aⅴ在线观看| 免费成人av| 国内精品视频久久| 麻豆91精品91久久久的内涵| 久久久久久久久久久成人| 久久精品成人一区二区三区蜜臀| 久久一区二区精品| 亚洲国产欧美不卡在线观看| 亚洲高清激情| 欧美日韩精品欧美日韩精品一 | 欧美在线视频日韩| 国产亚洲欧美日韩一区二区| 在线综合+亚洲+欧美中文字幕| 在线一区观看| 久久精品人人做人人爽| 亚洲美女黄色片| 欧美伊人久久久久久久久影院 | 国产视频丨精品|在线观看| 国内偷自视频区视频综合| 最新国产精品拍自在线播放| 国产精品久久久久久久久免费桃花 | 日韩午夜激情电影| 亚洲欧美一区二区原创| 国产视频亚洲精品| 中日韩视频在线观看| 久久只精品国产| 99视频日韩| 亚洲国内在线| 国产一区二区三区高清播放| 欧美午夜激情小视频| 国内成人在线| 国产精品毛片大码女人| 亚洲精品欧美日韩| 欧美成人网在线| 久久成人人人人精品欧| 国产精品日韩欧美一区二区三区| 亚洲免费不卡| 在线一区免费观看| 一区二区日韩| 99成人在线| 国产精品久久久久久久久久久久久| 欧美激情精品久久久久久大尺度| 国产一区二区三区在线观看精品| 国产精品美女久久| 午夜视频一区在线观看| 久久久久久久精| 久久人体大胆视频| 欧美伦理一区二区| 亚洲在线播放| 西瓜成人精品人成网站| 久久国产主播| 老司机精品视频一区二区三区| 亚洲国产国产亚洲一二三| 亚洲精品一区二区网址| 亚洲久久视频| 伊人色综合久久天天| 亚洲综合欧美| 久久久噜噜噜久久中文字幕色伊伊| 免费一级欧美片在线播放| 国产精品久久久久久久久果冻传媒| 国产目拍亚洲精品99久久精品| 99re国产精品| 久久精品30| 亚洲福利视频一区| 在线视频亚洲| 亚洲风情在线资源站| 精品盗摄一区二区三区| 久久精品国产2020观看福利| 国产视频久久网| 欧美成年人在线观看| 欧美国产一区二区| 久久亚洲欧洲| 亚洲黄色视屏| 免费成人av在线看| 亚洲小说欧美另类社区| 中文av一区二区| 国产精品午夜电影| 亚洲免费视频网站| 亚洲一区二区三区色| 国产午夜精品久久久久久久| 久久爱www.| 欧美午夜精品理论片a级按摩|