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

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

基于Directshow框架使用Windows渲染器VMR疊加水印

轉(zhuǎn)載自:http://blog.sina.com.cn/s/blog_6281e5750100xdnj.html

對(duì)于windows系統(tǒng),EVR/VMR9/VMR渲染器均提供了疊加靜態(tài)圖片的接口:
SetAlphaBitmap();
 
此接口支持靜態(tài)圖片的資源使用方式,一種是HDC,一種是SURFACE;
使用發(fā)現(xiàn),如果靜態(tài)圖片不規(guī)則,是有Alpha通道的不同取值形成,
則通過(guò)HDC疊加的會(huì)有黑邊存在;
 
對(duì)于EVR/VMR9可采用SURFACE,使用D3D創(chuàng)建,完美水印效果相對(duì)容易實(shí)現(xiàn),略過(guò);
對(duì)于VMR渲染器,SURFACE需要基于DirectDraw創(chuàng)建離屏表面;
 
離屏表面創(chuàng)建后,靜態(tài)圖片數(shù)據(jù)使用決定著是否能完美呈現(xiàn)水印效果;
一種是通過(guò)離屏表面獲取HDC,操作HDC,把靜態(tài)圖片附加給離屏表面,
一種是通過(guò)直接操作離屏表面的內(nèi)存數(shù)據(jù)地址;
 
經(jīng)過(guò)幾天的摸索,實(shí)現(xiàn)了比較完美的水印效果,代碼如下:
LPDIRECTDRAW7 lpDDraw7;
 
  
if(FAILED(DirectDrawCreateEx(NULL, (LPVOID *)&lpDDraw7, IID_IDirectDraw7, NULL)))
  
{
   
return ;
  }

 
if (FAILED(lpDDraw7->SetCooperativeLevel(m_hShowWin, DDSCL_NORMAL)))
 
{
  
return ;
 }

 
 DDSURFACEDESC2 ddsd;
 ZeroMemory(
&ddsd, sizeof(ddsd));
   ddsd.dwSize 
= sizeof(ddsd);
   ddsd.dwFlags 
= DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
   ddsd.ddsCaps.dwCaps 
= DDSCAPS_OFFSCREENPLAIN;
   ddsd.dwWidth 
= xs;
 ddsd.dwHeight 
= ys;
  ddsd.ddpfPixelFormat.dwSize 
=sizeof(DDPIXELFORMAT);
  ddsd.ddpfPixelFormat.dwFlags 
=DDPF_RGB | DDPF_ALPHAPIXELS;
  ddsd.ddpfPixelFormat.dwRGBBitCount 
=32;
   ddsd.ddpfPixelFormat.dwRBitMask
=0x00ff0000;
   ddsd.ddpfPixelFormat.dwGBitMask
=0x0000ff00;
   ddsd.ddpfPixelFormat.dwBBitMask
=0x000000ff;
 ddsd.ddpfPixelFormat.dwRGBAlphaBitMask
=0xff000000;
  
if(FAILED(lpDDraw7->CreateSurface(&ddsd, lpSource, NULL)))
 
{
  
return ;
 }

 
 
lpSurface
->Restore();
  CImage img;
  HRESULT result;
  result 
= img.Load(_bstr_t(path));
  
if(!SUCCEEDED(result))
   
return ;
  LPBYTE lpBits 
= (LPBYTE)img.GetBits();
  
int nPitch = img.GetPitch();
  
int imgWidth = img.GetWidth();
  
int bpp = img.GetBPP();
  
if(bpp != 24 && bpp != 32)
   
return ;
 
  DDSURFACEDESC2 dds;
  ZeroMemory(
&dds,0,sizeof(dds));
  dds.dwSize   
=   sizeof(dds);
  
if(DD_OK != lpSurface->Lock(NULL, &dds, DDLOCK_WAIT, NULL))
   
return;
 
  LPBYTE dest 
= (LPBYTE)dds.lpSurface;
  
forint yPos = 0; yPos < img.GetHeight(); yPos++)
  
{
   LPBYTE lpBytes 
= lpBits + ( yPos * nPitch );
   
int width = img.GetWidth( ) * (bpp / 8);
 
   
forint xPos = 0; xPos < width; )
   
{
    
if(bpp == 24)
    
{
 
     
*dest++ = lpBytes[xPos ];
     
*dest++ = lpBytes[xPos + 1];
     
*dest++ = lpBytes[xPos + 2];
     
*dest++ = 0xff;
 
     xPos 
+= 3 ;
    }

    
else if(bpp == 32)
    
{
     
*dest++ = lpBytes[xPos];
     xPos 
++;
    }

   }

 
   dest 
+= dds.lPitch - width;
  }

  lpSurface
->Unlock(NULL);
靜態(tài)圖片的數(shù)據(jù)賦給離屏表面,上面代碼采用的是操作內(nèi)存的方式,如果采用
lpSurface->GetDc(&hdc)的方式,然后通過(guò)BitBlt方式繪制的話,alpha通道會(huì)丟失,達(dá)不到水印的完美呈現(xiàn)

posted on 2012-09-17 11:06 楊粼波 閱讀(1344) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++Windows

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲第一福利视频| 国产精品久久久久秋霞鲁丝 | 在线观看亚洲a| 欧美与欧洲交xxxx免费观看 | 欧美精品一区二区蜜臀亚洲| 久久综合久久综合久久| 国产亚洲一区二区在线观看| 亚洲综合欧美日韩| 亚洲欧美亚洲| 国产精品日韩欧美综合| 亚洲午夜精品17c| 亚洲欧美视频| 国产欧美一区二区三区国产幕精品| 亚洲一区二区三区777| 亚洲在线观看视频| 欧美日韩国产精品一区| 亚洲人成网站在线播| 亚洲精品在线看| 欧美二区视频| 亚洲精品日韩激情在线电影| 亚洲视频在线免费观看| 欧美日韩一区二区三区四区五区 | 亚洲一区二区三区精品动漫| 欧美三级日韩三级国产三级| 一区二区三区黄色| 亚洲无吗在线| 国产欧美日韩免费看aⅴ视频| 久久riav二区三区| 亚洲电影欧美电影有声小说| 99re6热只有精品免费观看| 欧美精品一区二区在线播放| 亚洲视频久久| 久久精品人人做人人爽电影蜜月| 国产日韩在线亚洲字幕中文| 久久婷婷国产综合尤物精品| 亚洲国产精品专区久久| 亚洲一级电影| 国产视频久久| 久久婷婷蜜乳一本欲蜜臀| 欧美国产精品劲爆| 国产精品99久久久久久久久| 国产午夜精品久久| 麻豆久久久9性大片| 99在线精品免费视频九九视| 久久精品视频免费观看| 亚洲黄色一区| 国产精品一区二区三区久久| 老司机午夜精品| 亚洲先锋成人| 亚洲二区免费| 欧美在线www| 在线观看免费视频综合| 欧美日韩在线精品| 久久大综合网| 亚洲毛片一区| 毛片一区二区| 久久琪琪电影院| 久色成人在线| 日韩一区二区精品| 国产欧美精品| 欧美精品成人一区二区在线观看| 一区二区日韩欧美| 欧美激情精品久久久久久免费印度| 亚洲亚洲精品三区日韩精品在线视频| 韩国精品一区二区三区| 欧美性感一类影片在线播放 | 久久香蕉国产线看观看av| 制服丝袜激情欧洲亚洲| 亚洲成色777777女色窝| 国产精品99免费看 | 国产精品视频精品| 欧美韩日一区| 久久久久一区二区三区| 亚洲永久字幕| 日韩视频一区二区三区在线播放免费观看| 久久久天天操| 欧美在线关看| 亚洲欧美日韩国产一区| 一本色道久久综合亚洲精品小说| 伊人久久婷婷色综合98网| 国产视频在线观看一区二区| 国产精品色婷婷久久58| 国产精品久久毛片a| 欧美日韩在线第一页| 欧美精品自拍| 欧美激情一区在线| 欧美国产日韩视频| 蜜乳av另类精品一区二区| 久久天天躁狠狠躁夜夜爽蜜月| 久久福利毛片| 欧美一区二区| 欧美一区二区在线免费播放| 亚洲欧美日韩在线不卡| 亚洲欧美日本伦理| 亚洲欧美精品中文字幕在线| 亚洲视频在线免费观看| 宅男精品视频| 亚洲深夜影院| 亚洲欧美另类久久久精品2019| 亚洲制服欧美中文字幕中文字幕| 亚洲先锋成人| 先锋影音网一区二区| 欧美亚洲三区| 久久精品日韩| 久久在线播放| 欧美—级a级欧美特级ar全黄| 男人天堂欧美日韩| 欧美精品在线视频| 国产精品jvid在线观看蜜臀 | 久久激情视频久久| 久久激情综合| 看欧美日韩国产| 欧美顶级艳妇交换群宴| 欧美乱妇高清无乱码| 欧美视频中文在线看| 国产精品日日做人人爱| 国产一区二区三区高清播放| 国产一区久久| 最新国产乱人伦偷精品免费网站 | 99在线精品观看| 一区二区三区欧美成人| 亚洲欧美一区二区三区在线| 亚洲人成网站精品片在线观看 | 欧美电影电视剧在线观看| 亚洲国产精品国自产拍av秋霞| 91久久精品视频| 亚洲一区在线视频| 久久精品一区二区国产| 欧美激情第3页| 国产精品美女久久久久aⅴ国产馆| 国产日韩亚洲| 亚洲三级视频在线观看| 亚洲香蕉网站| 乱中年女人伦av一区二区| 亚洲人屁股眼子交8| 亚洲影视在线| 美女久久一区| 国产精品五月天| 亚洲国产美女| 午夜精品一区二区三区在线视 | 亚洲国产精品免费| 亚洲一卡二卡三卡四卡五卡| 久久久精品视频成人| 欧美日韩国产成人在线观看| 国产女优一区| 亚洲毛片av| 久久久噜久噜久久综合| 亚洲美女av网站| 久久久久国产精品麻豆ai换脸| 欧美片在线观看| 国内外成人免费激情在线视频| 日韩一级片网址| 久久综合999| 一区二区三区鲁丝不卡| 久久人人看视频| 国产女人18毛片水18精品| 日韩亚洲在线| 久久综合网络一区二区| 亚洲一本视频| 欧美日韩国产专区| 亚洲国产精品精华液网站| 欧美在线播放一区| 亚洲人成啪啪网站| 久久久亚洲高清| 国产欧美日韩亚州综合| 在线综合+亚洲+欧美中文字幕| 久久综合九色综合久99| 亚洲午夜精品一区二区三区他趣| 欧美大尺度在线观看| 激情国产一区二区| 欧美一区二区成人6969| 亚洲精品国精品久久99热| 久久伊人精品天天| 国产自产在线视频一区| 欧美夜福利tv在线| 日韩一区二区精品视频| 欧美国产91| 91久久精品网| 欧美成人一区二区在线| 久久久www成人免费精品| 国产欧美视频一区二区| 亚洲免费视频在线观看| 日韩午夜黄色| 欧美理论电影在线观看| 亚洲欧洲视频在线| 欧美刺激性大交免费视频| 久久精品国产一区二区三| 国产一区二区电影在线观看| 欧美一区二区视频观看视频| 亚洲香蕉视频| 国产精品视频yy9299一区| 亚洲一区二区视频| 一区二区激情| 国产精品久久久久久影院8一贰佰| 亚洲香蕉在线观看| 这里只有精品丝袜| 国产精品区一区二区三| 欧美综合国产精品久久丁香| 午夜精品久久久久久久男人的天堂 | 91久久久久久久久|