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

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

?? dipdoc.cpp

?? 車牌識別系統
?? CPP
字號:
// dipDoc.cpp : implementation of the CDipDoc class
//

#include "stdafx.h"
#include "dip.h"
#include "afx.h"
#include "dipDoc.h"
#include "GreyDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDipDoc

IMPLEMENT_DYNCREATE(CDipDoc, CDocument)

BEGIN_MESSAGE_MAP(CDipDoc, CDocument)
	//{{AFX_MSG_MAP(CDipDoc)
	ON_COMMAND(ID_grey, Ongrey)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDipDoc construction/destruction

CDipDoc::CDipDoc()
{
	// TODO: add one-time construction code here
	//初始化圖像數據和調色板
	ImgWidth=0;
	ImgHeight=0;
	ImgData=NULL;
	palette=NULL;
}

CDipDoc::~CDipDoc()
{
	//釋放所分配的空間
	if (ImgData) delete []ImgData;
	if (palette) delete []palette;
}

BOOL CDipDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CDipDoc serialization

void CDipDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		// TODO: add storing code here
	}
	else
	{
		// TODO: add loading code here
	}
}

/////////////////////////////////////////////////////////////////////////////
// CDipDoc diagnostics

#ifdef _DEBUG
void CDipDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CDipDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CDipDoc commands

//打開文件名為filename的文件,并從中讀取信息
void CDipDoc::FileOpen(CString filename)
{
	CString promt;//提示字符串
	int flag=true;//標志是否成功的打開文件
	CFile fp;     //新建一個文件
	BYTE num[4];

	//打開文件
	fp.Open(filename,CFile::modeRead|CFile::typeBinary);
	if (fp==NULL)
	{
		promt="Can't Open file "+filename;
		AfxMessageBox(promt);
		flag=false;
	}

	//保存圖像信息
	fp.Read(header,14);			//位圖文件頭
	fp.Read(infoheader,40);	
	//位圖信息頭
	//讀取biClrUsed色彩數目
	fp.Seek(46,CFile::begin);	
	fp.Read(num,4);
	colorused=(num[3]<<24)|(num[2]<<16)|(num[1]<<8)|num[0];
	//如果biClrUsed為0,則讀取biBitCount像素位數目
	if (!colorused)			
	{
		fp.Seek(28,CFile::begin);
		fp.Read(num,2);
		colorused=(num[1]<<8)|num[0];
		colorused=1<<colorused;		//色彩數目為2的像素位數目次方
	}

	//刪除原有調色板
	if (palette) delete []palette;		
	palette=new RGBQUAD[colorused];
	//讀取新調色板
	fp.Seek(54,CFile::begin);			
	fp.Read(palette,colorused*sizeof(palette));

	//判斷是否是BMP圖像
	WORD ImgType;
	fp.SeekToBegin();
	fp.Read(&ImgType,1);
	if (ImgType!=((('M'+127)*256)+'B'))
	{
		promt="file "+filename+" is not a BMP file";
		AfxMessageBox(promt);
		flag=false;
	}
	
	//判斷是否是256色位圖
	BYTE ImgBitCount;
	fp.Seek(28,CFile::begin);
	fp.Read(&ImgBitCount,1);
	if (ImgBitCount!=8)
	{
		promt="file "+filename+" is not a Greyscale";
		AfxMessageBox(promt);
		flag=false;
	}
	
	//符合條件,則讀取文件信息
	if (flag)
	{
		//更新文件名信息
		FileName=filename;

		//讀取圖像的寬度和高度
		fp.Seek(18,CFile::begin);
		fp.Read(num,4);
		ImgWidth=(num[3]<<24)|(num[2]<<16)|(num[1]<<8)|num[0];
		fp.Read(num,4);
		ImgHeight=(num[3]<<24)|(num[2]<<16)|(num[1]<<8)|num[0];
		
		//刪除原有的數據區,并根據圖像大小重新分配數據區
		if (ImgData) delete [] ImgData;
		ImgData=new BYTE[ImgWidth*ImgHeight];
		
		//讀區數據區開始的偏移量
		LONG offset;
		fp.Seek(10,CFile::begin);
		fp.Read(num,4);
		offset=(num[3]<<24)|(num[2]<<16)|(num[1]<<8)|num[0];
		fp.Seek(offset,CFile::begin);

		//每次讀取一行的像素點,并刪除添加的冗余點
		int i;
		int temp=ImgWidth%4;
		if (temp) temp=4-temp;
		//注意,是從下往上,從左往右來
		for(i=0;i<ImgHeight;i++)
		{
			fp.Read(ImgData+(ImgHeight-i-1)*ImgWidth,ImgWidth);
			fp.Seek(temp,CFile::current);
		}
	}
	fp.Close();	//讀取結束,關閉文件
}

//計算圖像的灰度直方圖
void CDipDoc::Ongrey() 
{
	// TODO: Add your command handler code here
	int i;
	CGreyDlg greyDlg;

 	for(i=0;i<ImgWidth*ImgHeight;i++)
		greyDlg.grey[ImgData[i]]++;			//統計灰度信息
	
	greyDlg.DoModal();						//顯示灰度直方圖對話框

}

//將現有的圖像存入文件filename中
int CDipDoc::FileSave(CString filename)
{
	CFile fp;
	//打開文件
	fp.Open(filename,CFile::modeWrite|CFile::typeBinary|CFile::modeCreate);
	if (!fp)
	{
		AfxMessageBox("Write error!");
		return(0);		//出錯返回
	}

	//寫入原圖像的頭部信息
	fp.Write(header,14);
	fp.Write(infoheader,40);
	fp.Write(palette,colorused*4);
	
	//寫入當前圖像的數據信息
	int i;
	char c[4]={0,0,0,0};
	int temp=ImgWidth%4;
	if (temp) temp=4-temp;
	for(i=0;i<ImgHeight;i++)
	{
		fp.Write(ImgData+(ImgHeight-i-1)*ImgWidth,ImgWidth);
		if (temp)				
			fp.Write(c,temp);	//添加冗余字段
	}

	//更新圖像的大小信息
	DWORD length;
	BYTE temp1;

	fp.Seek(2,CFile::begin);	//更新bfSize文件大小
	length=fp.GetLength();
	for(i=0;i<4;i++)
	{
		temp1=(BYTE)length%256;
		length=length/256;
		fp.Write(&temp1,1);
	}

	fp.Seek(18,CFile::begin);	//更新biWidth圖像寬度
	length=ImgWidth;
	for(i=0;i<4;i++)
	{
		temp1=(BYTE)length%256;
		length=length/256;
		fp.Write(&temp1,1);
	}

	fp.Seek(22,CFile::begin);	//更新biHeight圖像高度
	length=ImgHeight;
	for(i=0;i<4;i++)
	{
		temp1=(BYTE)length%256;
		length=length/256;
		fp.Write(&temp1,1);
	}

	fp.Close();	//關閉文件
	return(1);

}

//重新打開默認的文件,并從中讀取圖像信息
void CDipDoc::FileOpen()
{
	CString promt;//提示字符串
	int flag=true;//標志是否成功的打開文件
	CFile fp;

	//打開文件
	fp.Open(FileName,CFile::modeRead|CFile::typeBinary);
	if (fp==NULL)
	{
		promt="Can't Open file "+FileName;
		AfxMessageBox(promt);
		flag=false;
	}
	
	//如果打開成功
	if (flag)
	{
		BYTE num[4];
		//讀取圖像的寬度和高度
		fp.Seek(18,CFile::begin);
		fp.Read(num,4);
		ImgWidth=(num[3]<<24)|(num[2]<<16)|(num[1]<<8)|num[0];
		fp.Read(num,4);
		ImgHeight=(num[3]<<24)|(num[2]<<16)|(num[1]<<8)|num[0];
		
		//刪除原有的數據區,并根據圖像大小重新分配數據區
		if (ImgData) delete [] ImgData;
		ImgData=new BYTE[ImgWidth*ImgHeight];
		
		//讀區數據區開始的偏移量
		LONG offset;
		fp.Seek(10,CFile::begin);
		fp.Read(num,4);
		offset=(num[3]<<24)|(num[2]<<16)|(num[1]<<8)|num[0];
		fp.Seek(offset,CFile::begin);

		//每次讀取一行的像素點,并刪除添加的冗余點
		int i;
		int temp=ImgWidth%4;
		if (temp) temp=4-temp;
		for(i=0;i<ImgHeight;i++)
		{
			fp.Read(ImgData+(ImgHeight-i-1)*ImgWidth,ImgWidth);
			fp.Seek(temp,CFile::current);
		}
	}

	fp.Close();//讀取結束關閉文件
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看日韩电影| 欧美亚洲一区二区在线| 中文字幕亚洲在| 不卡视频一二三四| 亚洲精品大片www| 欧美日韩中文字幕一区| 亚洲成a人片在线不卡一二三区| 欧美久久久影院| 精品一区二区三区在线视频| 久久精品一区二区| 91一区在线观看| 亚洲综合丁香婷婷六月香| 7777精品伊人久久久大香线蕉经典版下载 | 波多野结衣在线aⅴ中文字幕不卡 波多野结衣在线一区 | 91精品国产综合久久精品| 麻豆精品久久精品色综合| 久久久久久97三级| 99riav久久精品riav| 亚洲福利一区二区三区| 日韩精品一区在线| 成人晚上爱看视频| 亚洲一区在线观看视频| 日韩免费视频一区| jlzzjlzz亚洲女人18| 一区二区三区久久久| 日韩免费高清视频| 99久久精品费精品国产一区二区| 亚洲国产综合91精品麻豆| 欧美不卡一区二区三区| av成人老司机| 免费不卡在线视频| 国产精品久久久久久户外露出 | 3d成人动漫网站| 国产精品77777| 亚洲一区二区三区四区的 | 欧美日韩黄色一区二区| 国内精品写真在线观看| 亚洲精品伦理在线| 精品国产一区二区在线观看| 99久久国产免费看| 天天爽夜夜爽夜夜爽精品视频| 久久夜色精品国产噜噜av| 色94色欧美sute亚洲线路一ni| 久久er99精品| 亚洲你懂的在线视频| 精品成人a区在线观看| 91国偷自产一区二区开放时间| 激情成人综合网| 亚洲一区二区三区视频在线| 久久久久久久久伊人| 欧美日韩中字一区| 成人丝袜高跟foot| 久久电影国产免费久久电影| 亚洲激情一二三区| 欧美激情综合五月色丁香| 欧美一卡二卡在线观看| 色噜噜久久综合| 国产成人在线视频网址| 日本不卡视频在线观看| 一区二区三区免费网站| 欧美激情一区三区| 精品国产乱码久久久久久久久| 欧美丝袜自拍制服另类| 成人黄色小视频在线观看| 精品制服美女丁香| 五月天中文字幕一区二区| 亚洲视频免费看| 国产欧美精品区一区二区三区 | 日韩午夜激情av| 欧美综合视频在线观看| 成人av集中营| 国产一区在线观看麻豆| 秋霞成人午夜伦在线观看| 亚洲最大成人网4388xx| 亚洲少妇30p| 欧美激情在线看| 26uuu成人网一区二区三区| 欧美一区二区三区喷汁尤物| 欧洲人成人精品| 91在线免费播放| 成人avav在线| 国产丶欧美丶日本不卡视频| 免费在线观看不卡| 日韩精品欧美成人高清一区二区| 亚洲精选视频免费看| 国产精品美女久久福利网站| 久久中文字幕电影| 精品国产三级a在线观看| 制服丝袜国产精品| 欧美中文一区二区三区| 色噜噜夜夜夜综合网| 色综合天天综合给合国产| 国产精品一区二区在线观看网站| 久久国产麻豆精品| 麻豆专区一区二区三区四区五区| 午夜精品久久久久久久蜜桃app| 亚洲精品高清视频在线观看| 国产精品国产自产拍在线| 国产欧美一区二区三区鸳鸯浴 | 午夜精品久久久久久久久久 | 亚洲综合清纯丝袜自拍| 亚洲欧美另类综合偷拍| 亚洲丝袜制服诱惑| 亚洲黄色小视频| 亚洲一区二区三区四区在线 | 国产一区二区三区不卡在线观看| 麻豆91免费观看| 狠狠色丁香久久婷婷综合丁香| 激情伊人五月天久久综合| 久久精品国产99国产精品| 激情综合网激情| 国产一区二区三区视频在线播放 | 九九九久久久精品| 另类欧美日韩国产在线| 久久精品999| 国产精品一区专区| 国产成人av影院| 99久久久免费精品国产一区二区 | 97se亚洲国产综合自在线观| 一本色道综合亚洲| 精品视频一区三区九区| 欧美一区在线视频| 日韩欧美成人一区| 国产亚洲精品福利| 一区视频在线播放| 一区二区三区日本| 三级不卡在线观看| 日韩在线观看一区二区| 开心九九激情九九欧美日韩精美视频电影| 六月婷婷色综合| 东方aⅴ免费观看久久av| 99精品视频在线免费观看| 日本韩国视频一区二区| 欧美日韩国产大片| 久久一区二区三区国产精品| 中文字幕二三区不卡| 亚洲一区二三区| 久久精品国产精品亚洲综合| 国产夫妻精品视频| 日本二三区不卡| 777午夜精品免费视频| 久久这里都是精品| 亚洲男帅同性gay1069| 天天操天天干天天综合网| 国产精品综合在线视频| 91小视频在线观看| 91麻豆精品91久久久久久清纯 | 老司机精品视频一区二区三区| 国产盗摄视频一区二区三区| 色婷婷综合久久久久中文| 欧美一级片免费看| 国产精品美女久久久久aⅴ| 亚洲午夜国产一区99re久久| 久久99精品国产麻豆婷婷洗澡| 国产成都精品91一区二区三| 欧美在线不卡一区| 精品免费国产一区二区三区四区| 国产精品久久久久久久蜜臀| 午夜一区二区三区在线观看| 国产酒店精品激情| 欧美三区免费完整视频在线观看| 日韩精品一区二区三区中文不卡| 亚洲欧美综合另类在线卡通| 免费一级片91| 97se亚洲国产综合自在线| 欧美一区二区三区四区高清| 国产精品久久精品日日| 日韩精品成人一区二区三区| 成人一区二区三区视频在线观看| 欧美日韩在线播放三区四区| 国产欧美一区二区三区网站 | 亚洲午夜久久久久久久久电影院| 国产在线视频精品一区| 在线精品视频免费观看| 久久久久免费观看| 性久久久久久久久| 国产成人av在线影院| 欧美一级艳片视频免费观看| 亚洲免费在线视频一区 二区| 久久疯狂做爰流白浆xx| 欧美这里有精品| 欧美国产1区2区| 麻豆久久久久久| 91福利在线导航| 国产区在线观看成人精品| 男人的j进女人的j一区| 91老师片黄在线观看| 久久久久久久免费视频了| 日韩高清在线不卡| 国产一区二区三区不卡在线观看| 欧美人牲a欧美精品| 国产精品盗摄一区二区三区| 久久精品国产精品青草| 欧美日韩三级在线| 国产精品国产三级国产aⅴ中文| 精品无人码麻豆乱码1区2区| 欧美日韩国产美女| 一区二区三区四区亚洲| 成人av影院在线| 久久久久亚洲蜜桃|