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

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

?? dib.cpp

?? 這是一本書上的圖象的紋理分析方法的代碼
?? 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久久精品情趣| 久久99精品久久久久久动态图 | 国产精品一区二区三区99| 久久精品一区二区三区四区| 欧美中文字幕一区| 盗摄精品av一区二区三区| 日韩在线卡一卡二| 亚洲欧美日韩国产综合| 精品国产一区二区三区不卡 | 国产成人免费9x9x人网站视频| 国产精品家庭影院| 精品国产91乱码一区二区三区| 91丨porny丨在线| 国产很黄免费观看久久| 奇米亚洲午夜久久精品| 午夜国产精品影院在线观看| 18成人在线视频| 欧美一区二区在线视频| 高清久久久久久| 国产91清纯白嫩初高中在线观看| 亚洲国产中文字幕| 亚洲精品国产无天堂网2021| 中文字幕一区二区三区四区不卡| 久久亚洲精品国产精品紫薇| 精品va天堂亚洲国产| 久久久www成人免费毛片麻豆 | 亚洲精品高清在线观看| 亚洲特黄一级片| 亚洲一区在线免费观看| 日韩高清中文字幕一区| 另类专区欧美蜜桃臀第一页| 国产一区二区三区久久久| 国产精品中文有码| 色噜噜狠狠色综合中国| 欧美日韩一区国产| 久久综合网色—综合色88| 国产精品女同一区二区三区| 午夜在线电影亚洲一区| 麻豆国产一区二区| 亚洲va韩国va欧美va| 欧美aⅴ一区二区三区视频| 国产高清视频一区| 欧美日韩国产综合一区二区| 久久视频一区二区| 亚洲一区二区在线播放相泽| 国内精品国产三级国产a久久| 一本久久a久久免费精品不卡| 欧美精选午夜久久久乱码6080| 久久久亚洲精品石原莉奈| 亚洲精品乱码久久久久久| 国产成人午夜电影网| 欧美精品777| 五月婷婷综合在线| 色先锋aa成人| 中文字幕一区二区日韩精品绯色| 免费观看久久久4p| 日韩欧美国产一区二区三区| 一区二区三区在线观看网站| 94色蜜桃网一区二区三区| 国产日产欧产精品推荐色| 国产成人精品亚洲午夜麻豆| 日韩午夜在线播放| 捆绑调教美女网站视频一区| 欧美日韩一区视频| 同产精品九九九| 国产酒店精品激情| 国产色91在线| 国产成人综合亚洲91猫咪| 久久久久久综合| 99久久99久久精品免费观看| 国产精品女主播在线观看| 成人性生交大片| 亚洲视频在线观看三级| 91豆麻精品91久久久久久| 亚洲国产欧美在线人成| 日韩免费视频一区| 岛国精品在线观看| 亚洲二区在线视频| 久久亚洲欧美国产精品乐播| 国产传媒一区在线| 天天影视涩香欲综合网| 国产亚洲欧美激情| 欧美日韩免费视频| 成人自拍视频在线| 麻豆免费精品视频| 亚洲精品免费视频| 国产精品久久久久久户外露出 | 亚洲精品五月天| 欧美变态tickling挠脚心| 狠狠色2019综合网| 一区二区中文字幕在线| 欧美一区日韩一区| 欧美中文字幕一区| 色综合一区二区| 成人性生交大片免费看中文| 久草这里只有精品视频| 亚洲在线视频网站| 亚洲日本在线视频观看| 久久日韩粉嫩一区二区三区| 这里只有精品99re| 欧美福利一区二区| 欧美另类变人与禽xxxxx| 91亚洲精华国产精华精华液| 成人av综合在线| 成人免费视频caoporn| 国产高清精品网站| 成人天堂资源www在线| eeuss鲁一区二区三区| 成熟亚洲日本毛茸茸凸凹| 99久久夜色精品国产网站| aa级大片欧美| 欧美私人免费视频| 欧美一区国产二区| 日本一区二区三区四区在线视频 | 综合中文字幕亚洲| 91精品麻豆日日躁夜夜躁| 日韩欧美一级在线播放| 国产精品欧美久久久久无广告| 国产亚洲成av人在线观看导航| 国产亚洲va综合人人澡精品| 国产精品美日韩| 一区二区在线观看视频| 午夜欧美2019年伦理| 精品一区二区久久| gogogo免费视频观看亚洲一| 欧美午夜精品一区二区三区| 久久亚洲精精品中文字幕早川悠里 | 亚洲国产欧美另类丝袜| 国产在线不卡视频| 欧美精品日韩精品| 亚洲精选一二三| 成人18视频在线播放| 日韩精品一区二区三区视频| 亚洲综合视频在线| av电影在线观看不卡 | 久久影视一区二区| 日韩av不卡在线观看| 欧美最猛黑人xxxxx猛交| 在线播放国产精品二区一二区四区 | 日韩一区二区精品葵司在线| 亚洲视频中文字幕| 91蝌蚪porny成人天涯| 亚洲国产精品精华液ab| 国产成人精品一区二| 久久免费偷拍视频| 国产成人精品免费| 国产三级三级三级精品8ⅰ区| 欧美aaa在线| 久久人人超碰精品| 精品一区精品二区高清| 久久久噜噜噜久久人人看| 国产精品18久久久久久久久久久久 | 国产精品夫妻自拍| 色噜噜狠狠成人中文综合| 亚洲精品少妇30p| 欧美日韩一本到| 久久国产精品免费| 国产三级精品三级| 91欧美一区二区| 日韩av电影免费观看高清完整版在线观看| 精品视频1区2区3区| 国产精品一区二区久久精品爱涩| 久久久www成人免费无遮挡大片| 99久久99精品久久久久久| 免费成人av资源网| 欧美一区二区三区人| 久久99久国产精品黄毛片色诱| 国产喂奶挤奶一区二区三区| 91视频91自| 国模大尺度一区二区三区| 一区二区三区蜜桃网| 欧美xxxx老人做受| 欧美日韩久久久一区| 成人免费视频视频在线观看免费| 亚洲与欧洲av电影| 国产精品国产馆在线真实露脸 | 一区二区三区四区不卡视频 | 91美女视频网站| 国产成人福利片| 激情图片小说一区| 亚洲午夜精品网| 一区二区三区四区视频精品免费 | 中文字幕亚洲在| 久久亚洲一区二区三区明星换脸| 欧美日韩成人高清| 欧美三电影在线| 欧美一区二区三区在线观看| 欧美日韩一区二区不卡|