TransparentBlt函數是Windows API中的一個函數,用于將一張圖像透明地繪制到目標設備上。
函數原型如下:
BOOL TransparentBlt(
HDC hdcDest, // 目標設備的句柄
int xoriginDest, // 目標矩形左上角的x坐標
int yoriginDest, // 目標矩形左上角的y坐標
int wDest, // 目標矩形的寬度
int hDest, // 目標矩形的高度
HDC hdcSrc, // 源設備的句柄
int xoriginSrc, // 源矩形左上角的x坐標
int yoriginSrc, // 源矩形左上角的y坐標
int wSrc, // 源矩形的寬度
int hSrc, // 源矩形的高度
UINT crTransparent // 透明顏色
);
使用TransparentBlt函數的一般步驟如下:
創建目標設備和源設備的句柄,可以通過CreateCompatibleDC函數創建。
將目標設備和源設備的圖像分別繪制到目標設備和源設備的句柄上,可以使用BitBlt函數。
調用TransparentBlt函數,將源設備上的圖像透明地繪制到目標設備上。
下面是一個簡單的使用示例:
HDC hdcDest, hdcSrc;HBITMAP hbmDest, hbmSrc;BITMAP bm;RECT rcDest, rcSrc;// 創建目標設備和源設備的句柄hdcDest = CreateCompatibleDC(NULL);hdcSrc = CreateCompatibleDC(NULL);// 加載源圖像hbmSrc = (HBITMAP)LoadImage(NULL, L"source.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);// 獲取源圖像的尺寸GetObject(hbmSrc, sizeof(BITMAP), &bm);// 創建目標圖像hbmDest = CreateCompatibleBitmap(hdcDest, bm.bmWidth, bm.bmHeight);// 將目標圖像選入目標設備SelectObject(hdcDest, hbmDest);// 將源圖像選入源設備SelectObject(hdcSrc, hbmSrc);// 設置透明顏色為白色SetBkColor(hdcSrc, RGB(255, 255, 255));// 設置目標矩形和源矩形的坐標和尺寸SetRect(&rcDest, 0, 0, bm.bmWidth, bm.bmHeight);SetRect(&rcSrc, 0, 0, bm.bmWidth, bm.bmHeight);// 執行透明繪制TransparentBlt(hdcDest, rcDest.left, rcDest.top, rcDest.right, rcDest.bottom,hdcSrc, rcSrc.left, rcSrc.top, rcSrc.right, rcSrc.bottom, RGB(255, 255, 255));// 清理資源DeleteObject(hbmDest);DeleteObject(hbmSrc);DeleteDC(hdcDest);DeleteDC(hdcSrc);
上述示例中,首先創建了目標設備和源設備的句柄,然后加載源圖像并獲取其尺寸,接著創建了目標圖像,并將目標圖像和源圖像分別選入到對應的設備上。然后設置透明顏色為白色,設置了目標矩形和源矩形的坐標和尺寸,最后調用TransparentBlt函數進行透明繪制。完成后清理資源。
注意事項:
目標設備和源設備的句柄需要通過DeleteDC函數釋放。
目標圖像和源圖像的句柄需要通過DeleteObject函數釋放。
在使用TransparentBlt函數之前,需要先將源設備上要透明的部分設置為透明顏色。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
理財付融寶是什么?根據付融寶的背景來看,付融寶是比較領先的投資平臺推出的。江蘇寶貝金融信息服務有限公司成立于2009年9月,是經工商行政管理部門批準的金融信息服務企業,是“南京電子商務協會理事單位”。公司憑借多年在金融、擔保、互聯網行業的積累,完善了產品、融資、理財、風險控制、金融、客戶服務等完整的金融服務產業鏈,成長為具有卓越獨立能力的金融創新企業。理財付融寶有哪些理財產...
企業征信是指征信機構作為提供信用信息服務的企業,按一定規則合法采集企業、個人的信用信息,加工整理形成企業、個人的信用報告等征信產品,有償提供給經濟活動中的貸款方、賒銷方、招標方、出租方、保險方等有合法需求的信息使用者,為其了解交易對方的信用狀況提供便利。企業征信查詢的具體內容包括:1、企業的工商注冊、變更基本信息;2、企業信貸、質押擔保、貿易融資等信息;司法判決、執行信息;3、稅務處罰、表彰信息;...
銀行回收硬幣嗎?銀行收硬幣,因為硬幣也是錢的一種形式,銀行就是專門與錢打交道的地方,你有硬幣可以去銀行存儲,也可以去銀行去兌換紙幣。其實回收硬幣是每個銀行應盡的義務,各銀行都應該回收。但存硬幣比較繁瑣,對銀行來說,耗時、耗力。因此,部分銀行都不太愿意收硬幣。舊硬幣回收價格一覽表一、第四套人民幣1元硬幣1、第四套人民幣1元硬幣于1999年10月16日開始發行,正面主景圖案為工人、農民、知識分子頭像,...