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

牽著老婆滿街逛

嚴(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

對于windows系統(tǒng),EVR/VMR9/VMR渲染器均提供了疊加靜態(tài)圖片的接口:
SetAlphaBitmap();
 
此接口支持靜態(tài)圖片的資源使用方式,一種是HDC,一種是SURFACE;
使用發(fā)現(xiàn),如果靜態(tài)圖片不規(guī)則,是有Alpha通道的不同取值形成,
則通過HDC疊加的會有黑邊存在;
 
對于EVR/VMR9可采用SURFACE,使用D3D創(chuàng)建,完美水印效果相對容易實(shí)現(xiàn),略過;
對于VMR渲染器,SURFACE需要基于DirectDraw創(chuàng)建離屏表面;
 
離屏表面創(chuàng)建后,靜態(tài)圖片數(shù)據(jù)使用決定著是否能完美呈現(xiàn)水印效果;
一種是通過離屏表面獲取HDC,操作HDC,把靜態(tài)圖片附加給離屏表面,
一種是通過直接操作離屏表面的內(nèi)存數(shù)據(jù)地址;
 
經(jīng)過幾天的摸索,實(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)的方式,然后通過BitBlt方式繪制的話,alpha通道會丟失,達(dá)不到水印的完美呈現(xiàn)

posted on 2012-09-17 11:06 楊粼波 閱讀(1344) 評論(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>
            亚洲欧美另类国产| 国产精品99久久久久久久vr| 亚洲免费av网站| 久久久久久国产精品一区| av成人免费在线观看| 欧美日韩精品一区二区三区| 亚洲色图制服丝袜| 极品尤物av久久免费看| 国产视频在线一区二区| 国产精品久久久久久久电影 | 久久久精品2019中文字幕神马| 中国亚洲黄色| 亚洲一区二区三区777| 亚洲性视频网站| 亚洲一区二区高清| 亚洲第一综合天堂另类专| 久久这里有精品视频| 亚洲欧美日韩另类精品一区二区三区| 99精品欧美一区二区三区| 亚洲国产精品美女| 欧美成人综合一区| 亚洲国产欧美日韩另类综合| 亚洲第一在线| 亚洲第一页在线| 麻豆成人小视频| 午夜精品久久久久影视| 欧美与黑人午夜性猛交久久久| 先锋影音久久| 久久亚洲捆绑美女| 免费久久久一本精品久久区| 欧美成人性网| 日韩一级成人av| 亚洲尤物精选| 久久久91精品国产| 欧美激情视频网站| 国产精品美女xx| 黄色日韩精品| 一区二区av在线| 久久久精品动漫| 久久精品国产久精国产一老狼 | 午夜视频一区二区| 久久人人九九| 亚洲日本免费电影| 亚洲免费在线观看| 欧美xart系列高清| 国产乱理伦片在线观看夜一区| 国产一区欧美| 日韩一级裸体免费视频| 久久国产乱子精品免费女| 亚洲国产片色| 性欧美xxxx大乳国产app| 欧美肥婆在线| 国产一区欧美| 一区二区三区高清在线观看| 久久网站免费| 亚洲乱码国产乱码精品精可以看| 亚洲综合不卡| 免费永久网站黄欧美| 国产精品免费网站| 亚洲精品欧洲| 久久人人超碰| 亚洲一区久久| 欧美日产一区二区三区在线观看| 欧美日韩精品综合| 欧美高清视频www夜色资源网| 国产日韩欧美在线视频观看| 亚洲视频综合在线| 欧美黄色aaaa| 久久久高清一区二区三区| 国产精品欧美久久久久无广告| 亚洲欧洲日本国产| 久久久精品久久久久| 亚洲一卡久久| 国产精品videossex久久发布| 亚洲人成亚洲人成在线观看| 久久青青草综合| 午夜精品一区二区三区电影天堂| 国产精品va在线播放我和闺蜜| 亚洲免费av观看| 亚洲国产美女| 欧美精品97| 一区二区三区在线视频播放| 欧美一区二区三区免费在线看| 久久综合亚洲社区| 亚洲精品少妇网址| 欧美日韩国产va另类| 一本色道久久加勒比88综合| 亚洲经典在线看| 欧美激情在线观看| 日韩一级精品视频在线观看| 欧美激情一区二区三区在线视频| 久久躁狠狠躁夜夜爽| 亚洲第一在线综合网站| 蜜桃久久av一区| 欧美国产精品劲爆| 9色国产精品| 一区二区三区国产在线| 欧美日本高清视频| 亚洲欧美国产va在线影院| 亚洲欧美日韩中文视频| 国产一区二区三区视频在线观看| 久久久久网址| 久久人人超碰| 亚洲日本中文| 欧美一区二区三区在线| 久久国产主播精品| 日韩午夜激情av| 亚洲自拍电影| 亚洲电影av在线| 亚洲精品专区| 国产精品一区二区久久国产| 久久久久久黄| 欧美激情1区2区| 亚洲一区二区精品在线观看| 亚洲一区二区三区视频播放| 香蕉久久国产| 久久爱另类一区二区小说| 亚洲欧洲综合另类| 亚洲视频你懂的| 伊人成综合网伊人222| 亚洲精品一级| 国产情侣一区| 欧美大胆a视频| 久久夜色精品国产| 国产九九精品| 欧美高清视频一区二区三区在线观看| 欧美国产日韩在线| 欧美在线精品一区| 欧美护士18xxxxhd| 久久久久久久久岛国免费| 欧美日本韩国| 你懂的一区二区| 国产精品永久免费视频| 亚洲国产精品成人综合色在线婷婷 | 亚洲免费观看高清完整版在线观看| 99riav久久精品riav| 狠狠爱成人网| 亚洲一区二区三区在线观看视频| 亚洲激情视频在线播放| 亚洲综合三区| 中国女人久久久| 嫩草国产精品入口| 乱码第一页成人| 国产精品一二三四| 91久久精品日日躁夜夜躁国产| 欧美另类在线观看| 女生裸体视频一区二区三区| 国产无一区二区| 亚洲视频在线观看免费| 99re66热这里只有精品3直播| 久久久久成人网| 久久久91精品| 国产伦精品一区二区三区在线观看| 亚洲精品视频在线观看网站 | 欧美日韩亚洲91| 亚洲激情一区二区| 亚洲电影在线观看| 久久福利精品| 久久国产视频网| 国产精品综合| 亚洲一区二区三区视频| 亚洲一区二区成人| 国产精品国产三级国产| 99在线|亚洲一区二区| 一本色道久久综合亚洲精品高清| 欧美大成色www永久网站婷| 欧美高清视频一区| 亚洲高清资源| 男男成人高潮片免费网站| 亚洲天堂av图片| 欧美日韩一级片在线观看| 亚洲欧美日韩中文视频| 久久婷婷综合激情| 在线中文字幕不卡| 国产在线不卡| 欧美视频中文字幕在线| 日韩亚洲欧美成人| 午夜精品网站| 亚洲三级影院| 久久精品视频网| 一区二区三区色| 韩日成人av| 国产精品成人v| 女同性一区二区三区人了人一| 亚洲综合色丁香婷婷六月图片| 亚洲国产成人不卡| 久久精品女人| 亚洲欧美在线观看| 亚洲精选国产| 亚洲国产一区二区三区高清| 国产精品一区在线观看你懂的| 欧美激情精品久久久久久蜜臀| 欧美有码在线观看视频| 一区二区激情| 亚洲免费观看| 亚洲精品美女免费| 亚洲国产成人av| 美国十次了思思久久精品导航| 午夜精品一区二区三区在线| 一区二区三区成人|