亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dib.cpp

?? 是一個人臉識別特征提取的Vc代碼
?? CPP
字號:
// Dib.cpp: implementation of the CDib class.
//
//////////////////////////////////////////////////////////////////////

#include "StdAfx.h"
#include "Dib.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CDib::CDib()
{
	m_hDrawDib=NULL;
	m_pDib=NULL;
}

CDib::~CDib()
{
	Close();
}

void CDib::Draw(CDC *pDC,int nWidth, int nHeight)
{
	if(m_pDib!=NULL)
	{
	ASSERT(IsValid());
	DrawDibRealize(m_hDrawDib,pDC->GetSafeHdc(),TRUE);
	DrawDibDraw(m_hDrawDib,pDC->GetSafeHdc(),
				0,  //desktop left
				0,  //desktop top
				nWidth,
				nHeight,
				(BITMAPINFOHEADER *)m_pDib,
				(LPVOID) GetBits(),
				0,  //source left
				0,  //source top
				((BITMAPINFOHEADER *)m_pDib)->biWidth,
				((BITMAPINFOHEADER *)m_pDib)->biHeight,
				DDF_BACKGROUNDPAL);
	}
}

CSize CDib::GetSize()
{
	return CSize(((BITMAPINFOHEADER *)m_pDib)->biWidth,
				 ((BITMAPINFOHEADER *)m_pDib)->biHeight);	
}

LONG CDib::GetWidth()
{
	return ((BITMAPINFOHEADER *)m_pDib)->biWidth;
}

LONG CDib::GetHeight()
{
	return	((BITMAPINFOHEADER *)m_pDib)->biHeight;
}

void CDib::Close()
{
	if(m_hDrawDib!=NULL)
	{
		DrawDibClose(m_hDrawDib);
		m_hDrawDib=NULL;
	}

	if(m_pDib!=NULL)
	{
		delete m_pDib;
		m_pDib=NULL;
	}
}

BOOL CDib::Open(const char * pzFileName)
{
//	BITMAPFILEHEADER bmpFileHeader;
	CFile file;
	int nBmpFileHeaderSize;

	Close();

	//drawdibopen initialize the diradib library and 
	//returns a handle for all drawdib operations
	if(!(m_hDrawDib=DrawDibOpen()))
		goto exit;

 	//open and read the DIB file header
	nBmpFileHeaderSize=sizeof(BITMAPFILEHEADER);

	if(!file.Open(pzFileName,CFile::modeRead | CFile::typeBinary))
		goto exit;

	if(file.Read((void *)&bmpFileHeader,nBmpFileHeaderSize)!=(UINT)nBmpFileHeaderSize)
		goto failure;

	//validate the DIB file header by checking the first
	//two characters for the signature "BM"
	if(bmpFileHeader.bfType!=*((WORD *)"BM"))
		goto failure;

	//allocate a big chuck of global memory to store the DIB
	m_pDib=(BYTE *)new char [bmpFileHeader.bfSize-nBmpFileHeaderSize];

	//allocate memory fail
	if(!m_pDib)
		goto failure;

	//read the dib into the buffer at a time using ReadHuge
	file.ReadHuge(m_pDib,bmpFileHeader.bfSize-nBmpFileHeaderSize);

	if(((BITMAPINFOHEADER *)m_pDib)->biSizeImage==0)
	{
		//the application that create this bitmap didn't fill
		//in the biSizeImage field. Let's fill it
		//in even though the DrawDib * functions don't need it.
		BITMAPINFOHEADER *pDib=(BITMAPINFOHEADER *)m_pDib;

		//scan lines must be DWord aligned, hence the strange bit stuff
		pDib->biSizeImage=((((pDib->biWidth*pDib->biBitCount)+31)&~31)>>3)*pDib->biHeight;
	}

	m_pDibBits=GetBits();

	file.Close();
	return TRUE;

failure:
	file.Close();
exit:
	Close();
	return FALSE;
}

BOOL CDib::Save(const char * pzFileName)
{
//	BITMAPFILEHEADER bmpFileHeader;
	CFile file;
	int nBmpFileHeaderSize;

 	//open and read the DIB file header
	nBmpFileHeaderSize=sizeof(BITMAPFILEHEADER);

	if(!file.Open(pzFileName,CFile::modeCreate | CFile::modeWrite | CFile::typeBinary))
		goto exit;

	file.Write(&bmpFileHeader,nBmpFileHeaderSize); 

	//allocate memory fail
	if(!m_pDib)
		goto failure;

	//read the dib into the buffer at a time using ReadHuge
	file.WriteHuge(m_pDib,bmpFileHeader.bfSize-nBmpFileHeaderSize);

	file.Close();
	return TRUE;

failure:
	file.Close();
exit:
	return FALSE;
}

BYTE * CDib::GetBits()
{
	//the size of the color map is determined by the number
	//of RGBQUAD structures presend.
	//it also depends on the bit_depth of the Dib
	DWORD dwNumColors,dwColorTableSize;
	BITMAPINFOHEADER *lpDib=(BITMAPINFOHEADER *)m_pDib;

	WORD wBitCount=lpDib->biBitCount;

	if(lpDib->biSize>=36)
		dwNumColors=lpDib->biClrUsed;
	else
		dwNumColors=0;

	if(dwNumColors==0)
	{
		if(wBitCount!=24)
			dwNumColors=1L<<wBitCount;
		else 
			dwNumColors=0;
	}

	dwColorTableSize=dwNumColors*sizeof(RGBQUAD);

	return m_pDib+lpDib->biSize+dwColorTableSize;
}

int CDib::GetBiBitCount()
{
	if(m_pDib!=NULL)
		return ((BITMAPINFOHEADER *)m_pDib)->biBitCount; 
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜精品久久久久久孕妇| 国产精品99久久久久久久女警 | 在线观看一区二区视频| 国产成人在线视频网址| 韩国成人福利片在线播放| 免费观看91视频大全| 蜜桃在线一区二区三区| 日韩精品久久理论片| 午夜精品福利视频网站| 五月婷婷激情综合| 日韩精品一二三四| 蜜臀精品一区二区三区在线观看 | 精品av久久707| 国产欧美一区二区精品秋霞影院| 国产无一区二区| 中文字幕亚洲成人| 亚洲成在人线免费| 蜜桃传媒麻豆第一区在线观看| 久久av资源站| av影院午夜一区| 91高清视频免费看| 日韩欧美综合在线| 国产日韩欧美麻豆| 亚洲永久免费视频| 日韩黄色免费电影| 成人免费不卡视频| 欧美偷拍一区二区| 久久久久久免费网| 亚洲色图都市小说| 另类的小说在线视频另类成人小视频在线| 狠狠色2019综合网| 日本久久一区二区三区| 欧美大片在线观看一区二区| 国产欧美一区二区在线观看| 一区二区三区四区亚洲| 久久精品免费看| 在线精品视频免费观看| 久久久天堂av| 午夜欧美一区二区三区在线播放| 国内精品第一页| 欧美视频在线播放| 国产精品女主播av| 久久www免费人成看片高清| 97久久超碰国产精品| 日韩一区二区在线观看| 成人免费视频在线观看| 久久国产精品99久久久久久老狼| 成+人+亚洲+综合天堂| 日韩亚洲电影在线| 亚洲视频免费在线| 国产制服丝袜一区| 欧美电影一区二区| 亚洲三级电影全部在线观看高清| 久久精品噜噜噜成人88aⅴ| 欧美亚洲免费在线一区| 国产精品不卡在线| 国产成人av电影在线观看| 欧美肥大bbwbbw高潮| 一个色在线综合| 色综合久久99| 国产精品久久久久久久岛一牛影视| 午夜成人在线视频| 欧美无人高清视频在线观看| 国产精品女主播在线观看| 国产成人在线电影| 精品免费日韩av| 免费成人你懂的| 91精品国产色综合久久不卡电影| 亚洲午夜久久久久| 日本乱码高清不卡字幕| 亚洲欧美偷拍三级| 91老司机福利 在线| 国产精品久久久久久久久免费丝袜| 国产一区二区三区免费观看| 日韩免费视频线观看| 蜜乳av一区二区| 日韩欧美一区二区三区在线| 日产精品久久久久久久性色| 欧美肥胖老妇做爰| 久久精品久久综合| 久久综合给合久久狠狠狠97色69| 毛片av一区二区三区| 精品久久久久久久久久久久久久久久久 | 国产精品一二三四| 中文字幕成人av| 99久久精品一区| 亚洲福利电影网| 日韩视频一区二区在线观看| 久久精品av麻豆的观看方式| 久久久久久免费网| 色婷婷综合视频在线观看| 亚洲精品久久7777| 91精品欧美综合在线观看最新 | 欧美精品一区二区三区久久久| 激情久久五月天| 国产精品久久久久久久久快鸭| 日本乱人伦一区| 蜜桃久久精品一区二区| 久久久久久久久久久黄色| 99精品一区二区| 一级女性全黄久久生活片免费| 欧美一区二区三区免费观看视频| 国产一区二区精品久久91| 亚洲日本青草视频在线怡红院| 欧美亚洲国产怡红院影院| 人人狠狠综合久久亚洲| 欧美激情综合五月色丁香小说| av不卡免费电影| 日韩精品乱码免费| 国产精品福利影院| 日韩一区二区不卡| 国产99久久久久| 亚洲综合激情另类小说区| 日韩欧美你懂的| 91在线云播放| 九九在线精品视频| 亚洲午夜av在线| 国产精品久久久久久亚洲毛片| 欧美日韩免费高清一区色橹橹| 国产一区二区日韩精品| 亚洲高清视频在线| 欧美激情在线观看视频免费| 精品视频一区 二区 三区| 国产精选一区二区三区| 亚洲bt欧美bt精品777| 国产亚洲午夜高清国产拍精品| 欧美日韩国产综合视频在线观看 | 欧美视频精品在线观看| 狠狠色丁香久久婷婷综| 亚洲chinese男男1069| 国产精品免费网站在线观看| 日韩一区二区在线免费观看| 99国产精品久久久久久久久久久| 男人的j进女人的j一区| 一区二区三区四区不卡视频| 国产精品私人影院| 久久免费的精品国产v∧| 欧美一区二区福利在线| 欧美色电影在线| 91猫先生在线| 不卡区在线中文字幕| 国产精品一品视频| 国产美女娇喘av呻吟久久| 美女视频网站黄色亚洲| 图片区小说区国产精品视频| 亚洲视频在线观看三级| 中文字幕一区二区三区在线观看| 久久久久久影视| 久久夜色精品国产欧美乱极品| 日韩网站在线看片你懂的| 91麻豆精品国产91久久久 | 91色乱码一区二区三区| 国产电影一区在线| 国产sm精品调教视频网站| 国产精品一区二区久久精品爱涩| 麻豆91在线观看| 欧美96一区二区免费视频| 奇米888四色在线精品| 免费观看成人鲁鲁鲁鲁鲁视频| 琪琪一区二区三区| 伦理电影国产精品| 国产在线精品不卡| 岛国精品一区二区| 91伊人久久大香线蕉| 91麻豆福利精品推荐| 欧美日韩国产在线观看| 欧美日韩高清影院| 日韩精品一区二区三区视频| 久久久精品免费免费| 国产精品乱码一区二区三区软件 | 国产日韩欧美高清在线| 中文字幕不卡的av| 亚洲免费色视频| 午夜国产精品影院在线观看| 午夜精品123| 国产精品一区二区免费不卡 | 日韩精品一级中文字幕精品视频免费观看| 亚洲3atv精品一区二区三区| 午夜电影网亚洲视频| 国产麻豆一精品一av一免费 | 国产精品久久久久久久久搜平片| 综合色天天鬼久久鬼色| 午夜亚洲福利老司机| 奇米精品一区二区三区在线观看 | 久久久不卡网国产精品二区| 夜夜亚洲天天久久| 激情综合色丁香一区二区| 成人av资源在线| 91麻豆精品国产自产在线| 国产亚洲精久久久久久| 亚洲一二三四久久| 国产成人在线看| 7777精品伊人久久久大香线蕉完整版 | 久久一夜天堂av一区二区三区| 国产精品久久毛片av大全日韩| 亚洲超丰满肉感bbw| 东方欧美亚洲色图在线| 日韩一级视频免费观看在线| 国产精品久久久久久久久快鸭 | 91在线码无精品|