⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multdocview.cpp

📁 合成4个代表K,C,M,Y通道的BMP位图为打印数据
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		CRip rip;	
		str=opendia.GetPathName();
		if(!rip.LoadRipFile(LPCSTR(str)))
			return ;
	::SetCursor(LoadCursor(NULL,IDC_WAIT));
		rip.Genercolor();
	::SetCursor(LoadCursor(NULL,IDC_ARROW));
	}

}

void CMultDocView::OnGenerbmp() 
{
	// TODO: Add your command handler code here
		CFileDialog opendia(true,NULL,NULL,OFN_HIDEREADONLY,"rip file(*.prn)|*.prn||",NULL);
	opendia.m_ofn.lpstrInitialDir="d:\\imageresource\\rip\\";
	if(opendia.DoModal()==IDOK)
	{
		CString str;
		CRip rip;	
		str=opendia.GetPathName();
//-----------------------------------------------------------------------------------
		::SetCursor(LoadCursor(NULL,IDC_WAIT));
		if(!rip.LoadRipFile(LPCSTR(str)))
			return ;	                                    
		if(!rip.Gener4bmp())
			return ;
			::SetCursor(LoadCursor(NULL,IDC_ARROW));
	}
}

void CMultDocView::On6bmp2rip() 
{	// TODO: Add your command handler code here
	CFileDialog opendia(true,NULL,NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER,"bmp file(*.bmp)|*.bmp||",NULL);//default IS OFN_EXPLORER 
	                                                   //except have select OFN_ALLOWMULTISELECT;
	opendia.m_ofn.lpstrInitialDir="d:\\rip\\testtime\\";
	if(opendia.DoModal()==IDOK)
	{
		::SetCursor(LoadCursor(NULL,IDC_WAIT));
		CString string,ripname;
		CStringArray m_aFileNames;

		CString str=opendia.GetPathName();
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-1.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-2.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-3.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-4.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-5.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-6.bmp");

		if(	m_aFileNames.GetSize()!=6)
			return ;
		
		BITMAPINFOHEADER bih;
		BITMAPFILEHEADER bfh;
		RipHeader rh;
		string=m_aFileNames.GetAt(0);
	//	string.Delete(string.GetLength()-4,1);
		ripname=string.Left(string.GetLength()-6);
		ripname.Insert(ripname.GetLength(),".prn");
		
		CFile filek(m_aFileNames.GetAt(0),CFile::modeRead);
		CFile filec(m_aFileNames.GetAt(1),CFile::modeRead);
		CFile filem(m_aFileNames.GetAt(2),CFile::modeRead);
		CFile filey(m_aFileNames.GetAt(3),CFile::modeRead);
		CFile filelc(m_aFileNames.GetAt(4),CFile::modeRead);
		CFile filelm(m_aFileNames.GetAt(5),CFile::modeRead);
		CFile filer(ripname,CFile::modeCreate|CFile::modeWrite);

		filec.Read(&bfh,sizeof(BITMAPFILEHEADER));
		filec.Read(&bih,sizeof(BITMAPINFOHEADER));

		rh.Height=bih.biHeight;
		rh.Width=bih.biWidth;
		rh.Colors=6;
		//rh.PaperWidth=1069546429;
		rh.Signature=0;
		rh.XDPI=180;
		rh.YDPI=180;
		rh.BytesPerLine=WIDTHBYTES(bih.biWidth);

		filer.Write(&rh,sizeof(RipHeader));

		long offset=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*2;
		filek.Seek(offset,CFile::begin);
		filec.Seek(offset,CFile::begin);
		filem.Seek(offset,CFile::begin);
		filey.Seek(offset,CFile::begin);
		filelc.Seek(offset,CFile::begin);
		filelm.Seek(offset,CFile::begin);

		char* lpchar=new char[rh.BytesPerLine];
		for(long y=0;y<bih.biHeight;y++)
		{	filek.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filec.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filem.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filey.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filelc.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filelm.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
		}
		delete [] lpchar;
		filer.Close();
		filec.Close();
		filem.Close();
		filey.Close();
		filelc.Close();
		filelm.Close();
		::SetCursor(LoadCursor(NULL,IDC_ARROW));
		AfxMessageBox("Finished!");
	}
}

void CMultDocView::OnBmptodat() 
{	CFileDialog opendia(true,NULL,NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER,"bmp file(*.bmp)|*.bmp||",NULL);//default IS OFN_EXPLORER 
	                                                   //except have select OFN_ALLOWMULTISELECT;
	//opendia.m_ofn.lpstrInitialDir="d:\\rip\\testtime\\";
	if(opendia.DoModal()==IDOK)
	{	::SetCursor(LoadCursor(NULL,IDC_WAIT));
		CStringArray m_aFileNames;
		POSITION pos=opendia.GetStartPosition();
		while(pos!=NULL)	
		{	CString str1=opendia.GetNextPathName(pos);
			m_aFileNames.Add(str1);	
		}
		if(	m_aFileNames.GetSize()!=20)
		{	AfxMessageBox("BMPCOUNT!=20");
			return ;
		}
		BITMAPINFOHEADER bih;
		BITMAPFILEHEADER bfh;
		UINT i=0;
		CFile datafile("strdata.dat",CFile::modeCreate|CFile::modeWrite);
		for(i=0;i<20;i++)
		{	CFile bmpfile(m_aFileNames.GetAt(i),CFile::modeRead);
			bmpfile.Read(&bfh,sizeof(BITMAPFILEHEADER));
			bmpfile.Read(&bih,sizeof(BITMAPINFOHEADER));
			long offset=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*2;
			bmpfile.Seek(offset,CFile::begin);
			LPBYTE lpData = new BYTE[WIDTHBYTES(bih.biWidth)*bih.biHeight];
			bmpfile.Read(lpData,WIDTHBYTES(bih.biWidth)*bih.biHeight);
			datafile.Write(lpData,WIDTHBYTES(bih.biWidth)*bih.biHeight);
			delete [] lpData;
			bmpfile.Close();
		}
		datafile.Close();
		
	}
}

void CMultDocView::On8bmp2rip() 
{
	CFileDialog opendia(true,NULL,NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER,"bmp file(*.bmp)|*.bmp||",NULL);//default IS OFN_EXPLORER 
	                                                   //except have select OFN_ALLOWMULTISELECT;
	opendia.m_ofn.lpstrInitialDir="d:\\rip\\testtime\\";
	if(opendia.DoModal()==IDOK)
	{
		::SetCursor(LoadCursor(NULL,IDC_WAIT));
		CString string,ripname;
		CStringArray m_aFileNames;

		CString str=opendia.GetPathName();
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-1.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-2.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-3.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-4.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-5.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-6.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-7.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-8.bmp");
		
		BITMAPINFOHEADER bih;
		BITMAPFILEHEADER bfh;
		RipHeader rh;
		string=m_aFileNames.GetAt(0);
	//	string.Delete(string.GetLength()-4,1);
		ripname=string.Left(string.GetLength()-6);
		ripname.Insert(ripname.GetLength(),".prn");
	
		CFile filek(m_aFileNames.GetAt(0),CFile::modeRead);
		CFile filec(m_aFileNames.GetAt(1),CFile::modeRead);
		CFile filem(m_aFileNames.GetAt(2),CFile::modeRead);
		CFile filey(m_aFileNames.GetAt(3),CFile::modeRead);
		CFile filelc(m_aFileNames.GetAt(4),CFile::modeRead);
		CFile filelm(m_aFileNames.GetAt(5),CFile::modeRead);
		CFile filelk(m_aFileNames.GetAt(6),CFile::modeRead);
		CFile filely(m_aFileNames.GetAt(7),CFile::modeRead);
		CFile filer(ripname,CFile::modeCreate|CFile::modeWrite);

		filec.Read(&bfh,sizeof(BITMAPFILEHEADER));
		filec.Read(&bih,sizeof(BITMAPINFOHEADER));

		rh.Height=bih.biHeight;
		rh.Width=bih.biWidth;
		rh.Colors=8;
		//rh.PaperWidth=1069546429;
		rh.Signature=0;
		rh.XDPI=180;
		rh.YDPI=180;
		rh.BytesPerLine=WIDTHBYTES(bih.biWidth);

		filer.Write(&rh,sizeof(RipHeader));

		long offset=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*2;
		filek.Seek(offset,CFile::begin);
		filec.Seek(offset,CFile::begin);
		filem.Seek(offset,CFile::begin);
		filey.Seek(offset,CFile::begin);
		filelc.Seek(offset,CFile::begin);
		filelm.Seek(offset,CFile::begin);
		filelk.Seek(offset,CFile::begin);
		filely.Seek(offset,CFile::begin);

		char* lpchar=new char[rh.BytesPerLine];
		for(long y=0;y<bih.biHeight;y++)
		{	 filek.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			 filec.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			 filem.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			 filey.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filelc.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filelm.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filelk.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filely.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
		}
		delete [] lpchar;
		filer.Close();
		filec.Close();
		filem.Close();
		filey.Close();
		filelc.Close();
		filelm.Close();
		filelk.Close();
		filely.Close();
		
		::SetCursor(LoadCursor(NULL,IDC_ARROW));
		AfxMessageBox("Finished!");
	}	
}

void CMultDocView::On10bmp2rip() 
{
	CFileDialog opendia(true,NULL,NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER,"bmp file(*.bmp)|*.bmp||",NULL);//default IS OFN_EXPLORER 
	                                                   //except have select OFN_ALLOWMULTISELECT;
	opendia.m_ofn.lpstrInitialDir="d:\\rip\\testtime\\";
	if(opendia.DoModal()==IDOK)
	{
		::SetCursor(LoadCursor(NULL,IDC_WAIT));
		CString string,ripname;
		CStringArray m_aFileNames;

		CString str=opendia.GetPathName();
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-1.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-2.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-3.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-4.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-5.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-6.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-7.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-8.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-9.bmp");
		m_aFileNames.Add(str.Left(str.GetLength()-6)+"-10.bmp");

		
		BITMAPINFOHEADER bih;
		BITMAPFILEHEADER bfh;
		RipHeader rh;
		string=m_aFileNames.GetAt(0);
	//	string.Delete(string.GetLength()-4,1);
		ripname=string.Left(string.GetLength()-6);
		ripname.Insert(ripname.GetLength(),".prn");
	
		CFile filek(m_aFileNames.GetAt(0),CFile::modeRead);
		CFile filec(m_aFileNames.GetAt(1),CFile::modeRead);
		CFile filem(m_aFileNames.GetAt(2),CFile::modeRead);
		CFile filey(m_aFileNames.GetAt(3),CFile::modeRead);
		CFile filelc(m_aFileNames.GetAt(4),CFile::modeRead);
		CFile filelm(m_aFileNames.GetAt(5),CFile::modeRead);
		CFile filelk(m_aFileNames.GetAt(6),CFile::modeRead);
		CFile filely(m_aFileNames.GetAt(7),CFile::modeRead);
		CFile filew(m_aFileNames.GetAt(8),CFile::modeRead);
		CFile filev(m_aFileNames.GetAt(9),CFile::modeRead);

		CFile filer(ripname,CFile::modeCreate|CFile::modeWrite);

		filec.Read(&bfh,sizeof(BITMAPFILEHEADER));
		filec.Read(&bih,sizeof(BITMAPINFOHEADER));

		rh.Height=bih.biHeight;
		rh.Width=bih.biWidth;
		rh.Colors=10;
		//rh.PaperWidth=1069546429;
		rh.Signature=0;
		rh.XDPI=180;
		rh.YDPI=185;
		rh.BytesPerLine=WIDTHBYTES(bih.biWidth);

		filer.Write(&rh,sizeof(RipHeader));

		long offset=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD)*2;
		filek.Seek(offset,CFile::begin);
		filec.Seek(offset,CFile::begin);
		filem.Seek(offset,CFile::begin);
		filey.Seek(offset,CFile::begin);
		filelc.Seek(offset,CFile::begin);
		filelm.Seek(offset,CFile::begin);
		filelk.Seek(offset,CFile::begin);
		filely.Seek(offset,CFile::begin);
		filew.Seek(offset,CFile::begin);
		filev.Seek(offset,CFile::begin);

		char* lpchar=new char[rh.BytesPerLine];
		for(long y=0;y<bih.biHeight;y++)
		{	 filek.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			 filec.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			 filem.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			 filey.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filelc.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filelm.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filelk.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filely.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filew.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);
			filev.Read(lpchar,rh.BytesPerLine);
			filer.Write(lpchar,rh.BytesPerLine);

		}
		delete [] lpchar;
		filer.Close();
		filec.Close();
		filem.Close();
		filey.Close();
		filelc.Close();
		filelm.Close();
		filelk.Close();
		filely.Close();
		filew.Close();
		filev.Close();
		
		::SetCursor(LoadCursor(NULL,IDC_ARROW));
		AfxMessageBox("Finished!");
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -