MFC中去掉bmp圖片的背景色
以下程式碼是本人從網上找的,和大家分享一下^
(note:)這是去掉背景色繪製BMP圖片的程式碼
void TransparentBitmap(HDC hdc, HBITMAP hBitmap, int xStart, int yStart, int xadd , int yadd , COLORREF cTransparentColor) {
BITMAP m_bm; COLORREF cColor;
// 建立臨時DC
HDC hMem, hBack, hObject, hTemp, hSave;
hBack = CreateCompatibleDC(hdc);
hObject = CreateCompatibleDC(hdc);
hMem = CreateCompatibleDC(hdc);
hSave = CreateCompatibleDC(hdc);
hTemp = CreateCompatibleDC(hdc);
// 選入點陣圖
SelectObject(hTemp, hBitmap);
GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&m_bm);
//顯示點陣圖寬高
POINT ptSize; /
/ 取得點陣圖的寬度
ptSize.x = m_bm.bmWidth;
// 取得點陣圖的該度
ptSize.y = m_bm.bmHeight;
// 轉換為邏輯點值
DPtoLP(hTemp, &ptSize, 1);
// 建立臨時點陣圖
HBITMAP bmBack, bmObject, bmMem, bmSave;
// 單色點陣圖
bmBack = CreateBitmap(ptSize.x, ptSize.y, 1, 1, NULL);
bmObject = CreateBitmap(ptSize.x, ptSize.y, 1, 1, NULL);
// 與裝置相容點陣圖 bmMem = CreateCompatibleBitmap(hdc, ptSize.x, ptSize.y);
bmSave = CreateCompatibleBitmap(hdc, ptSize.x, ptSize.y);
// 將建立的臨時點陣圖選入臨時DC中
HBITMAP OldbmBack, OldbmObject, OldbmMem, OldbmSave; OldbmBack = (HBITMAP)SelectObject(hBack, bmBack);
OldbmObject = (HBITMAP)SelectObject(hObject, bmObject);
OldbmMem = (HBITMAP)SelectObject(hMem, bmMem);
OldbmSave = (HBITMAP)SelectObject(hSave, bmSave);
// 設定對映模式
SetMapMode(hTemp, GetMapMode(hdc));
// 先保留原始點陣圖
BitBlt(hSave, 0, 0, ptSize.x, ptSize.y, hTemp, 0, 0, SRCCOPY);
// 將背景顏色設定為需透明的顏色
cColor = SetBkColor(hTemp, cTransparentColor);
// 建立目標遮蔽碼
BitBlt(hObject, 0, 0, ptSize.x, ptSize.y, hTemp, 0, 0, SRCCOPY);
// 恢復源DC的原始背景色
SetBkColor(hTemp, cColor);
// 建立反轉的目標遮蔽碼
BitBlt(hBack, 0, 0, ptSize.x, ptSize.y, hObject, 0, 0, NOTSRCCOPY);
// 拷貝主DC的背景到目標DC
BitBlt(hMem, 0, 0, ptSize.x, ptSize.y, hdc, xStart, yStart, SRCCOPY);
// 遮蔽點陣圖的顯示區
BitBlt(hMem, 0, 0, ptSize.x, ptSize.y, hObject, 0, 0, SRCAND);
// 遮蔽點陣圖中的透明色
BitBlt(hTemp, 0, 0, ptSize.x, ptSize.y, hBack, 0, 0, SRCAND);
// 將點陣圖與目標DC的背景左異或操作
BitBlt(hMem, 0, 0, ptSize.x, ptSize.y, hTemp, 0, 0, SRCPAINT);
// 拷貝目標到螢幕上
StretchBlt(hdc, xStart, yStart, ptSize.x+xadd, ptSize.y+yadd, hMem, 0, 0, ptSize.x, ptSize.y,SRCCOPY);
// 恢復原始點陣圖
BitBlt(hTemp, 0, 0, ptSize.x, ptSize.y, hSave, 0, 0, SRCCOPY);
// 刪除臨時記憶體點陣圖
DeleteObject(SelectObject(hBack, OldbmBack));
DeleteObject(SelectObject(hObject, OldbmObject));
DeleteObject(SelectObject(hMem, OldbmMem));
DeleteObject(SelectObject(hSave, OldbmSave));
// 刪除臨時記憶體DC
DeleteDC(hMem);
eleteDC(hBack);
eleteDC(hObject);
DeleteDC(hSave);
DeleteDC(hTemp); }
相關推薦
MFC中去掉bmp圖片的背景色
以下程式碼是本人從網上找的,和大家分享一下^ (note:)這是去掉背景色繪製BMP圖片的程式碼 void TransparentBitmap(HDC hdc, HBITMAP hBitmap, int xStart, int yStart, int xadd , i
android 中通過不同的條件,改變listview中字型顏色及背景色
結果圖: 通過介面卡進行操作: public class SystemAdapter extends BaseAdapter { private ArrayList<SjClass> sData; private Context sContext;
MFC中新增GIF圖片
1、下載上述文章中的軟體包,將其中的PictureEx.h,PictureEx.cpp這兩個檔案新增到工程中。 2、在對話方塊控制元件上新增Picture Control(圖片控制元件),修改其屬性:ID(TYPE:選Rectangle),不修改的話,ClassWiard不能新增CSatic控制變數,修改
Delphi中把bmp圖片轉換成jpg圖片
//bmp圖片轉換成jpg圖片function fun_BmpToJpg(temp, path: String; ACQ: Integer): Boolean; stdcall;var MyJpeg: TJpegImage; Bmp: TBitmap;begin re
body css樣式中 設定寬度和背景色
<!doctype html> <html> <head> <meta charset="utf-8"> <title>無標題文件</title> <style type="text/css"&g
改變MFC picture control控制元件背景色
定義控制元件相關變數: m_picture; 在OnPaint()中新增下列程式碼 CRect prect; m_picture.GetClientRect(&prect); //獲取區域 FillRect(m_picture.GetD
VC++ MFC中 使用BMP按鈕
*********ins-ert***********編譯出錯請去掉“-”1. 用下面的類CBmpButton2. 例化一個CBmpButton並將 控制元件對映 到想要顯示為BMP的按鈕上3. 注意: 要顯示BMP的按鈕的style屬性應選為: owner draw , b
視窗中顯示bmp圖片的過程
建立步驟 我們首先大致瞭解下顯示點陣圖的基本步驟,主要有5步,如圖1所示:
Python視覺化中Matplotlib(3.線條的詳細樣式及線性、儲存圖片、plot的詳細風格和樣式)、背景色、點和線的詳細設定
1.修改線條的樣式: linestyle、color、marker(標記) ''' 顏色 color:修改顏色,可以簡寫成c 樣式 linestyle='--' 修改線條的樣式 可以簡寫成 ls 標註 marker : 標註 線寬 linewidth: 設
MFC 對話方塊Picture Control(圖片控制元件)中靜態和動態顯示Bmp圖片
最近有同學問我如何實現MFC基於對話方塊在圖片控制元件中載入圖片?其實使用MFC顯示圖片的方法各種各樣,但是還是有些同學不知道怎樣顯示.以前在《數字影象處理》課程中完成的軟體都是基於單
在MFC中修改對話方塊、編輯框、button按鈕背景色
一、修改對話方塊背景色: 1、為目標對話方塊新增WM_CTRCOLOR訊息; 2、位目標Dlg類定義一個CBrush型別的私有成員變數:m_brushBg,並在其建構函式中將此畫刷初始為 一個淡藍色畫刷(畫刷顏色可任意修改):m_brushBg.CreateSolidBru
MFC在picture control中JPG/BMP/ICO等格式圖片顯示,並支援清除圖片顯示
1、新增一個picture control工具,修改ID為ID_STATIC_PICTURE 2、增加一個按鈕,caption為檢視圖片,雙擊按鈕生成按鈕的點選事件,在事件中新增程式碼,其中_T("Picture Files (*.bmp *.ico *.jpg)|*bmp
MFC中richedit控制元件插入BMP圖片
1在對話方塊中拉入一個RichEdit控制元件。為它關聯一個控制元件值 CRichEditCtrl m_rch; 2加入2個頭檔案 #include <afxole.h> #include <richole.h> 3在對話方塊中,新增成員函式
MFC中設定static text控制元件的背景色、字型、字號和顏色
在實際的應用中,可以用WM_CTLCOLOR 訊息改變mfc中控制元件的顏色,比如現在就來改變一個static text控制元件的 字型、字型大小、字型顏色和背景色。 例如對話方塊的類為CTestDlg. 1. 在對話方塊的類中新增兩個變數. 方法:在classview選項卡中,選擇CTestDlg,右鍵,
MFC對話方塊中改變對話方塊,Group Box, Static Text, Check Box, Edit Ctrl(disabled), Combo Box(disabled), Radio Button等控制元件背景色
VC 設定 Dialog, Group Box, Static Text, Check Box, Edit Ctrl(disabled), Combo Box(disabled), Radio Button等背景色 編寫WM_CTLCOLOR訊息的對映函式OnCtlColor
MFC中設定Label控制元件的背景色、字型、字號和顏色
實際的應用中,可以用WM_CTLCOLOR 訊息改變mfc中控制元件的顏色,比如現在就來改變一個static text控制元件的 字型、字型大小、字型顏色和背景色。 例如對話方塊的類為CTest
PyQt4中給QWidget新增背景圖片或者更換背景色
class Emit(QtGui.QWidget): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setGeometry(300, 300, 200, 100)
MFC中BMP圖片放入失敗問題解決辦法
之前寫的一個MFC小專案在最後想插入圖片總是報錯,後來查了各種資料終於解決了,圖片放入失敗的錯誤和解決辦法如下。 1:找不到rc.exe,原因是圖片路徑 專案名是中文名字的時候總是會報錯:“找
Swing-JFrame 淺談如何在JFrame中新增背景色及背景圖片
JFrame預設是BorderLayout JPanel預設是FlowLayout。 1.JFrame設定背景色,注意體會註釋的那句話。 package com.tools; import java.awt.Color; import javax.swing.J
eclipse中的字體大小設置和背景色設置
技術分享 -1 image ply logs .cn lips app cnblogs 1.字體大小設置 在basic下選擇最後一個TextFont 護眼背景色設置 添加到自定義顏色後點確定 最後一步點apply eclipse中的字體大小設置和背景色設