亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久色视频免费观看| 美腿丝袜亚洲色图| 日本vs亚洲vs韩国一区三区二区| 国产乱理伦片在线观看夜一区| 91麻豆精品视频| 精品99999| 亚洲成人资源在线| 成人av影视在线观看| 7777精品久久久大香线蕉| 国产精品污网站| 久久国产免费看| 欧美偷拍一区二区| 亚洲人成网站影音先锋播放| 国内精品伊人久久久久影院对白| 欧美军同video69gay| 一区二区在线观看不卡| 粉嫩av一区二区三区粉嫩| 欧美大片国产精品| 视频一区视频二区中文字幕| 91蝌蚪porny成人天涯| 国产精品理论在线观看| 懂色av一区二区三区免费看| 精品成人佐山爱一区二区| 美女网站色91| 日韩视频在线你懂得| 视频一区二区中文字幕| 欧美日本在线播放| 亚洲成人激情av| 欧美日韩亚洲综合| 亚洲第一av色| 69久久夜色精品国产69蝌蚪网| 一区二区三区在线观看欧美| 91免费视频网| 亚洲一二三区视频在线观看| 色狠狠桃花综合| 一区二区三区在线视频观看58| 欧美性欧美巨大黑白大战| 亚洲精品videosex极品| 欧美在线短视频| 亚洲大片免费看| 91精品国产福利| 精品一区二区三区久久| 久久久91精品国产一区二区三区| 国产精品一区专区| 国产精品全国免费观看高清| 91天堂素人约啪| 亚洲高清在线视频| 日韩三级视频在线观看| 国产精品中文字幕一区二区三区| 欧美激情一区不卡| 色综合天天视频在线观看| 亚洲一区二区三区激情| 日韩视频123| 成人精品电影在线观看| 一区av在线播放| 欧美一级欧美三级在线观看 | 亚洲精品国产精品乱码不99| 91亚洲精品乱码久久久久久蜜桃| 亚洲午夜精品17c| 日韩精品一区二区三区视频在线观看| 国产成人免费视频网站高清观看视频| 日韩码欧中文字| 91麻豆精品久久久久蜜臀| 国产一区二区网址| 亚洲激情中文1区| 精品99999| 色屁屁一区二区| 韩国毛片一区二区三区| 最近日韩中文字幕| 日韩精品一区二区三区老鸭窝 | 国产精品嫩草久久久久| 日本精品一区二区三区四区的功能| 蜜桃一区二区三区在线观看| 国产精品乱码一区二三区小蝌蚪| 欧美情侣在线播放| 成人91在线观看| 免费av成人在线| 一区二区在线看| 国产欧美精品一区二区色综合| 欧美日本一区二区三区四区| 成人看片黄a免费看在线| 日韩av中文字幕一区二区 | 91香蕉视频黄| 黑人巨大精品欧美一区| 亚洲bt欧美bt精品| 亚洲国产激情av| 日韩欧美成人一区| 欧美午夜精品免费| 99精品桃花视频在线观看| 极品少妇xxxx偷拍精品少妇| 一区二区三区四区精品在线视频| 久久久久久日产精品| 欧美日韩久久不卡| 91麻豆视频网站| 成年人网站91| 懂色av噜噜一区二区三区av| 精品一区二区三区的国产在线播放| 亚洲一区在线播放| 亚洲精品成a人| 亚洲欧洲制服丝袜| 国产精品国产三级国产aⅴ无密码| 欧美一区二区不卡视频| 欧美高清激情brazzers| 欧美大片日本大片免费观看| av在线播放一区二区三区| 国产综合色视频| 久久电影网站中文字幕| 日产国产欧美视频一区精品| 欧美优质美女网站| 美国一区二区三区在线播放| 亚洲欧美一区二区三区久本道91 | 97久久人人超碰| 国产成人啪免费观看软件| 精品一区二区三区日韩| 国产精品理论片| 国产精品乱人伦| 日韩一区在线看| 欧美国产精品中文字幕| 国产色产综合色产在线视频| 国产精品久久精品日日| 国产视频一区在线播放| 国产亚洲美州欧州综合国| 国产校园另类小说区| 欧美激情在线看| 1024精品合集| 亚洲综合小说图片| 日韩不卡手机在线v区| 久久超碰97人人做人人爱| 精品一区二区三区不卡| 国产91高潮流白浆在线麻豆| 成人av影视在线观看| 欧美在线观看一二区| 777精品伊人久久久久大香线蕉| 日韩免费电影网站| 久久精品人人做人人爽人人| 中文在线一区二区| 一个色在线综合| 日本视频一区二区| 国产高清在线精品| 91在线播放网址| 91精品国产综合久久蜜臀| 精品不卡在线视频| 亚洲视频免费在线观看| 五月激情综合色| 国产精品99久久久| 在线欧美日韩精品| 精品日韩99亚洲| 亚洲精品高清在线观看| 蜜臀av性久久久久av蜜臀妖精 | 久久亚洲一级片| 亚洲美女偷拍久久| 久久疯狂做爰流白浆xx| 91丝袜美腿高跟国产极品老师| 制服丝袜亚洲色图| 中文字幕中文字幕一区二区 | 国产在线观看一区二区| www.成人在线| 精品久久久三级丝袜| 一区二区三区精密机械公司| 麻豆freexxxx性91精品| 97se亚洲国产综合自在线不卡| 日韩欧美一二三四区| 一区二区三区在线视频观看| 国产一区二区三区香蕉| 欧美久久久久免费| 国产精品国产三级国产三级人妇| 人妖欧美一区二区| 色先锋aa成人| 国产亚洲精品超碰| 蜜桃av噜噜一区| 欧美日韩一区久久| 中文字幕亚洲成人| 狠狠狠色丁香婷婷综合久久五月| 欧美在线一二三四区| 国产午夜精品久久久久久免费视| 日韩专区在线视频| 色狠狠av一区二区三区| 欧美国产精品久久| 精品一区二区三区久久久| 国产人久久人人人人爽| 另类小说视频一区二区| 欧美日韩免费视频| 亚洲国产精品嫩草影院| 91一区二区三区在线观看| 中文文精品字幕一区二区| 黑人精品欧美一区二区蜜桃| 日韩欧美国产电影| 免费观看久久久4p| 日韩一区二区三区在线视频| 亚洲777理论| 欧美日韩一区二区三区在线看| 亚洲精品国产第一综合99久久| 99久久99久久精品免费看蜜桃 | 精品第一国产综合精品aⅴ| 日韩高清在线一区| 5858s免费视频成人| 亚洲电影你懂得| 欧美一区二区三区在线视频| 美女网站在线免费欧美精品| 日韩免费看网站|