最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ 設(shè)置透明背景圖片

 更新時間:2015年06月29日 09:17:07   投稿:hebedich  
這篇文章主要介紹了C++ 設(shè)置透明背景圖片的相關(guān)資料,需要的朋友可以參考下

背景:

有兩個圖片,一個是目標(biāo)背景圖片, 一個是帶有自身背景色彩的彩色圖片

先將這彩色圖片繪制到目標(biāo)背景圖片中, 這一步通過BITBLT就可實現(xiàn)。   但實現(xiàn)后的效果是: 目標(biāo)圖片上,繪制上去的彩色圖片帶有其本身的背景。

問題就來了, 我們想將彩色圖片本身的背景去掉,應(yīng)該如何解決?

解決方法:

使用API函數(shù):TransparentBlt   此函數(shù)將原DC中的圖片繪制到目標(biāo)DC中,并同時設(shè)置原圖形在目標(biāo)圖形上的透明色。

BOOL TransparentBlt( 
 HDC hdcDest,    // handle to destination DC 
 int nXOriginDest,  // x-coord of destination upper-left corner 
 int nYOriginDest,  // y-coord of destination upper-left corner 
 int nWidthDest,   // width of destination rectangle 
 int hHeightDest,  // height of destination rectangle 
 HDC hdcSrc,     // handle to source DC 
 int nXOriginSrc,  // x-coord of source upper-left corner 
 int nYOriginSrc,  // y-coord of source upper-left corner 
 int nWidthSrc,   // width of source rectangle 
 int nHeightSrc,   // height of source rectangle 
 UINT crTransparent // color to make transparent 
);

如本例中,將透明色設(shè)置為彩色圖形自帶背景色時, 則使用此函數(shù)后,所得最終圖形上彩色圖形的自身背景色就消除了。

CDC* pDC=GetDC(); 
 
CBitmap bmp; 
bmp.LoadBitmap(IDB_BITMAP1); 
 
BITMAP bmpInfo; 
bmp.GetObject(sizeof(BITMAP),&bmpInfo); 
 
 
CDC ImageDC; 
ImageDC.CreateCompatibleDC(pDC); 
 
CBitmap *pOldImageBmp=ImageDC.SelectObject(&bmp); 
 
 
CBitmap bmpBK; 
bmpBK.LoadBitmap(IDB_BITMAP2); 
 
BITMAP bmpBkInfo; 
  bmpBK.GetObject(sizeof(BITMAP),&bmpBkInfo); 
 
CDC bkDC; 
bkDC.CreateCompatibleDC(pDC); 
 
bkDC.SelectObject(&bmpBK); 
 
TransparentBlt(bkDC.m_hDC,100,150,bmpInfo.bmWidth,bmpInfo.bmHeight,ImageDC.m_hDC,0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,RGB(255,0,0)); // 設(shè)置紅色為透明色 
 
BitBlt(pDC->m_hDC,0,0,bmpBkInfo.bmWidth,bmpBkInfo.bmHeight,bkDC.m_hDC,0,0,SRCCOPY); //畫到屏幕上

原理: 通過設(shè)置掩碼位圖來實現(xiàn)

              1)首先建立掩碼位圖
              2)使用掩碼位圖作用于彩色原圖,得到變異新圖(透明色為黑,其他區(qū)域為原色)
              3)使用掩碼位圖與目標(biāo)背景圖相與 (透明區(qū)域為透明色,其他區(qū)域為黑色)
              4)使用變異新圖與目標(biāo)背景圖相或  ,得到最終圖

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • C語言實現(xiàn)個稅計算器

    C語言實現(xiàn)個稅計算器

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)個稅計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 詳解C++14中返回類型推導(dǎo)的使用

    詳解C++14中返回類型推導(dǎo)的使用

    這篇文章主要為大家詳細(xì)介紹了C++14中返回類型推導(dǎo)的使用,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07
  • 全排列算法的原理和實現(xiàn)代碼

    全排列算法的原理和實現(xiàn)代碼

    這篇文章主要介紹了全排列算法的原理和實現(xiàn)代碼,全排列是將一組數(shù)按一定順序進(jìn)行排列,如果這組數(shù)有n個,那么全排列數(shù)為n!個,需要的朋友可以參考下
    2014-08-08
  • C++用new創(chuàng)建對象和不用new創(chuàng)建對象的區(qū)別解析

    C++用new創(chuàng)建對象和不用new創(chuàng)建對象的區(qū)別解析

    在C++用new創(chuàng)建對象和不用new創(chuàng)建對象是有區(qū)別的,不知你是否清楚的了解它們到底有什么樣的區(qū)別呢?下面小編就用示例來告訴大家吧,需要的朋友可以過來參考下
    2013-07-07
  • QT .pro文件的實現(xiàn)

    QT .pro文件的實現(xiàn)

    本文主要介紹了QT .pro文件的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • C語言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼)

    C語言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼)

    這篇文章主要介紹了C語言不用鏈表完成學(xué)生管理系統(tǒng)(完整代碼),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • C++開發(fā)繪制正弦曲線的方法

    C++開發(fā)繪制正弦曲線的方法

    這篇文章主要為大家詳細(xì)介紹了C++繪制正弦曲線的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • C指針原理教程之語法樹及其實現(xiàn)

    C指針原理教程之語法樹及其實現(xiàn)

    本文給大家分享的是如何使用C語言的指針原來來實現(xiàn)語法樹,并給大家提供了詳細(xì)的實例代碼,希望大家能夠喜歡
    2019-02-02
  • C++ 中const對象與const成員函數(shù)的實例詳解

    C++ 中const對象與const成員函數(shù)的實例詳解

    這篇文章主要介紹了C++ 中const對象與const成員函數(shù)的實例詳解的相關(guān)資料,希望通過本文能讓大家徹底掌握該如何使用,需要的朋友可以參考下
    2017-08-08
  • C++?Boost?Format超詳細(xì)講解

    C++?Boost?Format超詳細(xì)講解

    Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱
    2022-11-11

最新評論

九江县| 拉萨市| 长海县| 隆昌县| 班戈县| 大方县| 静乐县| 樟树市| 泰顺县| 文山县| 法库县| 公安县| 炉霍县| 泸溪县| 肥东县| 崇明县| 秦皇岛市| 青龙| 眉山市| 巴彦淖尔市| 贺兰县| 凉城县| 邓州市| 高淳县| 高雄县| 赤峰市| 姚安县| 玉屏| 乾安县| 神木县| 娱乐| 新蔡县| 宁乡县| 钦州市| 安徽省| 石柱| 浑源县| 奈曼旗| 平武县| 万载县| 湖口县|