第一篇:第二章 BMP位圖類的創(chuàng)建與MFC單文檔視圖類的顯示
BMP位圖文件的4個組成部分
bmp文件大體上分成四個部分。
位圖文件頭BITMAPFILEHEADER、位圖信息頭BITMAPINFOHEADER、調(diào)色板Palette、實際的位圖數(shù)據(jù)ImageDate 第1部分為位圖文件頭BITMAPFILEHEADER,是一個結(jié)構(gòu)體類型,該結(jié)構(gòu)的長度是固定的,為14個字節(jié)。其定義如下: typedef struct tagBITMAPFILEHEADER { WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;1.文件頭信息塊
0000-0001 :文件標(biāo)識,為字母ASCII碼“BM”。0002-0005 :文件大小。
0006-0009 :保留,每字節(jié)以“00”填寫。
000A-000D :記錄圖像數(shù)據(jù)區(qū)的起始位置。各字節(jié)的信息含義依次為:文件頭信息塊大小,圖像描述信息塊的大小,圖像顏色表的大小,保留(為01)。
第2部分為位圖信息頭BITMAPINFOHEADER,也是一個結(jié)構(gòu)體類型的數(shù)據(jù)結(jié)構(gòu),該結(jié)構(gòu)的長度也是固定的,為40個字節(jié)(WORD為無符號16位整數(shù),DWORD為無符號32位整數(shù),LONG為32位整數(shù))。其定義如下: typedef struct tagBITMAPINFOHEADER { DWORD biSize;圖像描述信息塊的大小,常為28H。
LONG biWidth;
LONG biHeight;
WORD biPlanes;=1
WORD biBitCount;記錄像素的位數(shù)
DWORD biCompression;數(shù)據(jù)壓縮方式
DWORD biSizeImage;圖像區(qū)數(shù)據(jù)的大小
LONG biXPelsPerMeter;指定目標(biāo)設(shè)備的水平分辨率,單位是像素/米
LONG biYPelsPerMeter;
DWORD biClrUsed;位圖實際用到的顏色數(shù)
DWORD biClrImportant;位圖顯示過程中重要的顏色數(shù),如果該值為零,則認(rèn)為所有的顏色都是重要的。
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;2.圖像描述信息塊
000E-0011:圖像描述信息塊的大小,常為28H。0012-0015:圖像寬度。0016-0019:圖像高度。
001A-001B:圖像的plane總數(shù)(恒為1)。
001C-001D:記錄像素的位數(shù),很重要的數(shù)值,圖像的顏色數(shù)由該值決定。001E-0021:數(shù)據(jù)壓縮方式(數(shù)值位0:不壓縮;1:8位壓縮;2:4位壓縮)。0022-0025:圖像區(qū)數(shù)據(jù)的大小。
0026-0029:水平每米有多少像素,在設(shè)備無關(guān)位圖(.DIB)中,每字節(jié)以00H填寫。
002A-002D:垂直每米有多少像素,在設(shè)備無關(guān)位圖(.DIB)中,每字節(jié)以00H填寫。
002E-0031:此圖像所用的顏色數(shù),如值為0,表示所有顏色一樣重要。第3部分為顏色表。顏色表實際上是一個RGBQUAD結(jié)構(gòu)的數(shù)組,數(shù)組的長度由biClrUsed指定(如果該值為零,則由biBitCount指定,即2的biBitCount次冪個元素)。RGBQUAD結(jié)構(gòu)是一個結(jié)構(gòu)體類型,占4個字節(jié),其定義如下:
typedef struct tagRGBQUAD { BYTE rgbBlue;BYTE rgbGreen;BYTE rgbRed;BYTE rgbReserved;}RGBQUAD;3.顏色表
顏色表的大小根據(jù)所使用的顏色模式而定:2色圖像為8字節(jié);16色圖像位64字節(jié);256色圖像為1024字節(jié)。其中,每4字節(jié)表示一種顏色,并以B(藍色)、G(綠色)、R(紅色)、alpha(32位位圖的透明度值,一般不需要)。即首先4字節(jié)表示顏色號0的顏色,接下來表示顏色號1的顏色,依此類推。
第4部分是位圖數(shù)據(jù),即圖像數(shù)據(jù),其緊跟在位圖文件頭、位圖信息頭和顏色表(如果有顏色表的話)之后,記錄了圖像的每一個像素值。對于有顏色表的位圖,位圖數(shù)據(jù)就是該像素顏色在調(diào)色板中的索引值;對于真彩色圖,位圖數(shù)據(jù)就是實際的R、G、B值(三個分量的存儲順序是B、G、R)。下面分別就2色、16色、256色和真彩色位圖的位圖數(shù)據(jù)進行說明:
— 對于2色位圖,用1位就可以表示該像素的顏色,所以1個字節(jié)能存儲8個像素的顏色值。
— 對于16色位圖,用4位可以表示一個像素的顏色。所以一個字節(jié)可以存儲2個像素的顏色值。
— 對于256色位圖,1個字節(jié)剛好存儲1個像素的顏色值。— 對于真彩色位圖,3個字節(jié)才能表示1個像素的顏色值。需要注意兩點:
第一,Windows規(guī)定一個掃描行所占的字節(jié)數(shù)必須是4的倍數(shù),不足4的倍數(shù)則要對其進行擴充。假設(shè)圖像的寬為biWidth個像素、每像素biBitCount個比特,其一個掃描行所占的真實字節(jié)數(shù)的計算公式如下:
DataSizePerLine =(biWidth * biBitCount /8+ 3)/ 4*4 那么,不壓縮情況下位圖數(shù)據(jù)的大小(BITMAPINFOHEADER結(jié)構(gòu)中的biSizeImage成員)計算如下:
biSizeImage = DataSizePerLine * biHeight 第二,一般來說,BMP文件的數(shù)據(jù)是從圖像的左下角開始逐行掃描圖像的,即從下到上、從左到右,將圖像的像素值一一記錄下來,因此圖像坐標(biāo)零點在圖像左下角。
CDIB類的建立
class CDib { public:
LPRGBQUAD
m_lpRgbQuad;//顏色表指針
LPBYTE
m_lpData;//位圖數(shù)據(jù)指針
UINT
m_numberOfColors;//顏色數(shù)
BOOL
m_bValid;//位圖是否有效 BOOL
m_bHasRgbQuad;//是否有顏色表 HPALETTE
m_hPalette;
//調(diào)色板句柄
LPBITMAPFILEHEADER m_lpBmpFileHeader;//位圖文件頭指針
LPBITMAPINFOHEADER m_lpBmpInfoHeader;//位圖信息頭指針
LPBITMAPINFO
m_lpBmpInfo;//位圖信息指針 LPBYTE
m_lpDib;//位圖指針,包含除位圖文件頭的所有內(nèi)容、需要動態(tài)分配和釋放 DWORD size;public:
char m_fileName[256];
LPCTSTR GetFileName();
BOOL LoadFile(LPCTSTR dibFileName);BOOL SaveFile(LPCTSTR filename);//LPCTSTR GetFileName();
LONG GetWidth();
LONG GetHeight();
DWORD GetSize();//獲取位圖大小
WORD GetBitCount();//獲取單個像素所占的位數(shù)
UINT GetLineByte();//獲取每行像素所占字節(jié)數(shù)
UINT GetNumOfColor();//獲取位圖顏色數(shù)
LPRGBQUAD GetRgbQuad();//獲取位圖顏色表
LPBYTE
GetData();
//獲取位圖數(shù)據(jù) BOOL Draw(CDC* pDC,BYTE *,CPoint origin,CSize size);//顯示位圖 BOOL HasRgbQuad();//判斷是否有顏色表?
BITMAPINFO* GetInfo();
BOOL IsGrade();//判斷是否為灰度圖像 WORD PaletteSize(LPBYTE lpDIB);WORD DIBNumColors(LPBYTE lpDIB);
BOOL IsValid();//判斷位圖是否有效? protected:
DWORD CalcRgbQuadLength();//計算位圖顏色表的長度 BOOL MakePalette();//根據(jù)顏色表生成調(diào)色板 void Empty(BOOL bFlag=TRUE);//清理空間
public: CDib(void);~CDib(void);
};
主要成員函數(shù):
////////////////////////////////////////////////////////// //函數(shù)功能:從文件加載位圖
//輸入?yún)?shù):LPCTSTR dibFileName表示待加載位圖文件路徑 //返回值:加載是否成功
///////////////////////////////////////////////////////////
BOOL CDib::LoadFile(LPCTSTR dibFileName){
strcpy(m_fileName,dibFileName);//記錄位圖文件名 CFile dibFile;//選擇讀模式定義文件對象
if(!dibFile.Open((LPCTSTR)m_fileName, CFile::modeRead|CFile::shareDenyWrite)){ } //Empty(FALSE);//為位圖文件頭指針分配空間,并初始化為 return FALSE;m_lpBmpFileHeader=(LPBITMAPFILEHEADER)new BYTE[sizeof(BITMAPFILEHEADER)];
memset(m_lpBmpFileHeader,0,sizeof(BITMAPFILEHEADER));//讀取位圖文件頭
int nCount= dibFile.Read(m_lpBmpFileHeader,sizeof(BITMAPFILEHEADER));//讀bmp文件頭信息到指針m_lpBmpfileHeader if(nCount!=sizeof(BITMAPFILEHEADER))return FALSE;if(m_lpBmpFileHeader->bfType == 0x4d42)//判斷是否是bmp文件
{ DWORD fileLength = dibFile.GetLength();//獲取文件長度信息 size = fileLength-sizeof(BITMAPFILEHEADER);//文件數(shù)據(jù)區(qū)大小=文件長度-文件頭大小
m_lpDib=new BYTE[size];memset(m_lpDib,0,size);dibFile.Read((void*)m_lpDib, size);//讀除bmp文件頭外的所有數(shù)據(jù)到指
dibFile.Close();//關(guān)閉文件
m_lpBmpInfo =(LPBITMAPINFO)m_lpDib;//獲取bmp文件的信息 m_lpBmpInfoHeader =(LPBITMAPINFOHEADER)m_lpDib;//獲取文件信息頭地址 針m_lpDib m_lpRgbQuad =(LPRGBQUAD)(m_lpDib +m_lpBmpInfoHeader->biSize);
//顏色表地址=pDib +m_lpBmpInfoHeader->biSize;
int m_numberOfColors =GetNumOfColor();//顏色數(shù) if(m_lpBmpInfoHeader->biClrUsed == 0)// m_lpBmpInfoHeader->biClrUsed =m_numberOfColors;//顏色表的大小CalcRgbQuadLength(){return m_numberOfColors *sizeof(RGBQUAD)} DWORD colorTableSize =CalcRgbQuadLength();//位圖數(shù)據(jù)區(qū)地址
m_lpData =m_lpDib + m_lpBmpInfoHeader->biSize+ colorTableSize;
if(m_lpRgbQuad ==(LPRGBQUAD)m_lpData)// No color table m_lpRgbQuad = NULL;
}
m_lpBmpInfoHeader->biSizeImage = GetSize();m_bValid = TRUE;return TRUE;}
else {
} m_bValid = FALSE;AfxMessageBox(“This isn't a bitmap file!”);return FALSE;///////////////////////////////////////////////// //將位圖保存到文件
//LPCTSTR filename表示位圖文件保存路徑文件名 //返回值,TRUE-表示成功
///////////////////////////////////////////////// BOOL CDib::SaveFile(LPCTSTR filename){
CFile dibFile;//以寫模式打開文件
if(!dibFile.Open((LPCTSTR)filename, CFile::modeCreate|CFile::modeWrite|CFile::shareExclusive)){ } return FALSE;strcpy(m_fileName,filename);dibFile.Write(m_lpBmpFileHeader,sizeof(BITMAPFILEHEADER));//將位圖文件頭結(jié)構(gòu)寫進文件
dibFile.Write(m_lpBmpInfoHeader,sizeof(BITMAPINFOHEADER));//將位圖信息頭結(jié)構(gòu)寫進文件
DWORD dwRgbQuandLength=CalcRgbQuadLength();//計算顏色表長度
if(dwRgbQuandLength!=0)dibFile.Write(m_lpRgbQuad,dwRgbQuandLength);//若存在顏色表,則將顏色表寫進位圖文件
} DWORD dwDataSize=GetLineByte()*GetHeight();dibFile.Write(m_lpData,dwDataSize);//將位圖數(shù)據(jù)寫進位圖文件 dibFile.Close();//關(guān)閉文件 return TRUE;
////////////////////////////////////////// //根據(jù)顏色表生成調(diào)色板
/////////////////////////////////////////// BOOL CDib::MakePalette(){ DWORD dwRgbQuadLength=CalcRgbQuadLength();if(dwRgbQuadLength==0)return FALSE;//為表示圖像為真彩色圖像,沒有調(diào)色板 if(m_hPalette!=NULL)//刪除舊的調(diào)色板對象
{
} //申請緩沖器,初始化為 DeleteObject(m_hPalette);m_hPalette=NULL;/*調(diào)色板編程見到這樣兩個結(jié)構(gòu): typedef struct tagPALETTEENTRY {
BYTE peRed;
BYTE peGreen;
BYTE peBlue;
BYTE peFlags;} PALETTEENTRY;
typedef struct tagLOGPALETTE {
WORD
palVersion;
WORD
palNumEntries;
PALETTEENTRY palPalEntry[1];// } LOGPALETTE;*/ DWORD dwNumOfColor=GetNumOfColor();DWORD dwSize= 2*sizeof(WORD)+dwNumOfColor*sizeof(PALETTEENTRY);LPLOGPALETTE lpLongPalette=(LPLOGPALETTE)new
BYTE[dwSize];
memset(lpLongPalette,0,dwSize);//生成邏輯調(diào)色板
lpLongPalette->palVersion=0x300;lpLongPalette->palNumEntries=dwNumOfColor;LPRGBQUAD lpRgbQuad =(LPRGBQUAD)m_lpRgbQuad;// m_lpRgbQuad位圖文件顏色表地址
} for(int i=0;i } m_hPalette=CreatePalette(lpLongPalette);//創(chuàng)建邏輯調(diào)色板 delete []lpLongPalette;return TRUE;lpLongPalette->palPalEntry[i].peRed=lpRgbQuad->rgbRed;lpLongPalette->palPalEntry[i].peGreen=lpRgbQuad->rgbGreen;lpLongPalette->palPalEntry[i].peBlue=lpRgbQuad->rgbBlue;lpLongPalette->palPalEntry[i].peFlags=0;lpRgbQuad++;LPCTSTR CDib::GetFileName(){ } LONG CDib::GetWidth(){ } return m_lpBmpInfoHeader->biWidth;return m_fileName; LONG CDib::GetHeight(){ } DWORD CDib::GetSize(){ } WORD CDib::GetBitCount(){ } return m_lpBmpInfoHeader->biBitCount;if(m_lpBmpInfoHeader->biSizeImage!=0){ } else { return GetWidth()*GetHeight();return m_lpBmpInfoHeader->biSizeImage;return m_lpBmpInfoHeader->biHeight;} UINT CDib::GetLineByte(){ } /////////////////////////////////////////////// //獲取圖像使用的顏色數(shù) ////////////////////////////////////////////// UINT CDib::GetNumOfColor(){ UINT dwNumOfColor;//m_lpBmpInfoHeader->biClrUsed圖像中使用的顏色數(shù),m_lpBmpInfoHeader->biBitCount像素位數(shù),,if((m_lpBmpInfoHeader->biClrUsed==0)&&(m_lpBmpInfoHeader->biBitCount<9)){ switch(m_lpBmpInfoHeader->biBitCount) { case 1:dwNumOfColor=2;break; case 4:dwNumOfColor=16;break; case 8:dwNumOfColor=256; } } else dwNumOfColor=m_lpBmpInfoHeader->biClrUsed;return dwNumOfColor;} DWORD CDib::CalcRgbQuadLength(){ DWORD dwNumOfColor=GetNumOfColor();if(dwNumOfColor>256){ dwNumOfColor=0;} return dwNumOfColor*sizeof(RGBQUAD);} //////////////////////////////////////// //獲取顏色表 return(GetWidth()*GetBitCount()/8+3)/4*4;//返回顏色表指針 /////////////////////////////////////// LPRGBQUAD CDib::GetRgbQuad(){ return m_lpRgbQuad;} ////////////////////////////////////// //獲取位圖數(shù)據(jù)區(qū)指針 //////////////////////////////////// LPBYTE CDib::GetData(){ return m_lpData;} /////////////////////////////////////////////////////////// //函數(shù)功能:顯示位圖 //CDC *pDC表示設(shè)備環(huán)境指針 //CPoint origin 表示顯示矩形區(qū)域的左上角 //CSize size表示顯示矩形區(qū)域的大小 //////////////////////////////////////////////////////////// BOOL CDib::Draw(CDC* pDC,BYTE * lpData,CPoint origin,CSize size){ if(!IsValid())return FALSE;if(m_lpDib==NULL)return FALSE;HPALETTE hOldPalette=NULL;if(m_hPalette!=NULL)//如果位圖有調(diào)色板則選進設(shè)備環(huán)境中 hOldPalette=SelectPalette(pDC->GetSafeHdc(),m_hPalette,TRUE);pDC->SetStretchBltMode(COLORONCOLOR);//設(shè)置位圖伸縮模式 //將位圖在pDC所指向的設(shè)備上進行顯示 StretchDIBits(pDC->GetSafeHdc(),origin.x,origin.y,size.cx,size.cy,0,0,GetWidth(),GetHeight(),lpData,m_lpBmpInfo,DIB_RGB_COLORS,SRCCOPY);if(hOldPalette!=NULL)SelectPalette(pDC->GetSafeHdc(),hOldPalette,TRUE);//恢復(fù)舊的調(diào)試板 } BOOL CDib::HasRgbQuad(){ } BOOL CDib::IsValid(){ } BOOL CDib::IsGrade(){ } void CDib::Empty(BOOL bFlag)//清理空間 { if(bFlag)strcpy(m_fileName,“");return(GetBitCount()<9&&GetBitCount()>0);return m_bValid;return m_bHasRgbQuad;return TRUE; } if(m_lpBmpFileHeader!=NULL){ } if(m_lpDib!=NULL){ } if(m_hPalette!=NULL){ } m_bHasRgbQuad=FALSE;m_bValid=FALSE;DeleteObject(m_hPalette);m_hPalette=NULL;delete[] m_lpDib;m_lpDib=NULL;m_lpBmpInfo=NULL;m_lpBmpInfoHeader=NULL;m_lpRgbQuad=NULL;m_lpData=NULL;delete[] m_lpBmpFileHeader;m_lpBmpFileHeader=NULL; MFC單文檔中圖像的顯示與操作 一、創(chuàng)建MFC單文檔工程:DIPAX 二、在DIPAX工程添加CDib類的定義及其實現(xiàn)。 三、在DIPAX工程MFC單文檔中創(chuàng)建兩個視圖類,左右分開 1、首先創(chuàng)建類: class CDynSplitterWnd :public CSplitterWnd { public: CDynSplitterWnd(void);~CDynSplitterWnd(void);};在CMainFrame中包含上述類的頭文件,重寫CMainFrame類的方法virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); 2、在重寫類之前,創(chuàng)建新的視圖類 class CDynSplitView : public CView //第一個視圖類:CdipaxView 以及在CMainFrame里創(chuàng)建上述窗口分割類的對象CDynSplitterWnd m_wndSplitter; 3、現(xiàn)在可以重寫上述OnCreateClient()方法了:{ BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)// TODO: 在此添加專用代碼和/或調(diào)用基類 if(!m_wndSplitter.CreateStatic(this, 1, 2)){ TRACE0(”Failed to Splitter windown“);return FALSE;} // add the first splitter panean input view in column 1 if(!m_wndSplitter.CreateView(0, 1,RUNTIME_CLASS(CDynSplitView), CSize(0, 0), pContext)){ TRACE0(”Failed to create second panen“);return FALSE;} // activate the input view SetActiveView((CView*)m_wndSplitter.GetPane(0,1));return TRUE;//return CFrameWnd::OnCreateClient(lpcs, pContext); 4、運行效果 四、在視圖類CdipaxView中顯示位圖 1.在CdipaxDoc文檔類中添加: (1)添加頭文件 #include ”DIB.h“(2)添加成員變量: CDib Cdib;CString filename;int statedoc;(3)添加OnFileOpen()事件函數(shù): OnFileOpen()void CdipaxDoc::OnFileOpen(){ // TODO: 在此添加命令處理程序代碼 CFileDialog dlg(TRUE,_T(”BMP“),_T(”*.BMP“),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T(”位圖文件(*.BMP)|*.BMP|“)); if(IDOK==dlg.DoModal()) filename.Format(”%s",dlg.GetPathName()); Cdib.LoadFile(filename); statedoc=1;}(4)在構(gòu)造函數(shù)中添加: CdipaxDoc::CdipaxDoc(){ // TODO: 在此添加一次性構(gòu)造代碼 statedoc=0;} 2、在CdipaxView視圖類中添加: (1)在CdipaxView.h中添加成員變量 public: CString filename;int state1;(2)在構(gòu)造函數(shù)中添加: CdipaxView::CdipaxView(){ // TODO: 在此處添加構(gòu)造代碼 state1=0;}(3)改寫菜單項: (4)改寫工具欄: (5)在CdipaxView中為菜單ID_ORIGINIMAGE添加事件處理程序: void CdipaxView::OnOriginimage(){ // TODO: 在此添加命令處理程序代碼 CdipaxDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);filename=pDoc->filename;state1=1;Invalidate();} (6)重寫OnDraw函數(shù): void CdipaxView::OnDraw(CDC* pDC){ CdipaxDoc* pDoc = GetDocument();ASSERT_VALID(pDoc); // TODO: 在此處為本機數(shù)據(jù)添加繪制代碼 if(state1==1){ pDoc->Cdib.Draw(pDC,pDoc->Cdib.m_lpData,CPoint(0,0),CSize(pDoc->Cdib.GetWidth(),pDoc->Cdib.GetHeight())); } }(7)運行效果: 五、一個簡單的二值化操作 1、在CDynSplitView中顯示經(jīng)過處理之后的圖像(1)在CDynSplitView.h中添加 public: BYTE* image_out;//處理后圖像數(shù)據(jù)區(qū)指針 BYTE* image_in;//處理前圖像數(shù)據(jù)區(qū)指針 long m_imagex;//圖像的寬度 long m_imagey;//圖像的高度 int state2;//CDynSplitView視圖類是否為當(dāng)前視圖 CPalette hPalette;public: void clearmem(void);//復(fù)制圖像數(shù)據(jù) (2)構(gòu)造函數(shù) CDynSplitView::CDynSplitView(){ image_out=NULL; image_in=NULL; state2=0; m_imagex=0; m_imagey=0;}(3)成員函數(shù)的實現(xiàn) void CDynSplitView::clearmem(void){ CdipaxDoc* pDoc =(CdipaxDoc*)GetDocument();ASSERT_VALID(pDoc);pDoc->statedoc=0;state2=1;m_imagex=pDoc->Cdib.GetWidth();m_imagey=pDoc->Cdib.GetHeight(); long int size=m_imagex*m_imagey;if(pDoc->Cdib.GetBitCount()>8) size=size*3;image_out=new BYTE[size];image_in=new BYTE[size];memcpy(image_in,pDoc->Cdib.m_lpData,size);//復(fù)制原圖像到處理區(qū) }(4)改寫OnDraw()函數(shù): void CDynSplitView::OnDraw(CDC* pDC){ CdipaxDoc* pDoc = GetDocument(); } ASSERT_VALID(pDoc);if(!pDoc->statedoc&&state2==1){ pDoc->Cdib.Draw(pDC,image_out,CPoint(0,0),CSize(m_imagex,m_imagey));} 2、灰度圖像的二值化處理操作 (1)添加圖像操作菜單:ID_BINARIZATION,標(biāo)題為二值化處理,并添加事件處理程序。 void CDynSplitView::OnBinarization(){ // TODO: 在此添加命令處理程序代碼 clearmem();//復(fù)制圖像數(shù)據(jù) for(int i=0;i for(int j=0;j { if(*(image_in+i*m_imagex+j)>128) *(image_out+i*m_imagex+j)=255; else *(image_out+i*m_imagey+j)=0; } } Invalidate();} 二值化處理:像素灰度值>128的為白色值255,否則為黑色值0。 金屬加工與實訓(xùn)答案 一、判斷題: 1.√,2.√,3.×,4.√,5.×,6.×,7.×,8.×,9.×,10.×,11.×,12.×,13.√,14.√,15.√,16.×,17.×,18.√,19.√,20.×,21.√,22.×,23.√,24.×,25.×,26.×,27.×,28.√,29.×,30.×,31.√,32.√,33.×,34.×,35.√,36.×,37.√,38.√,39.√,40.√,41.×,42.√,43.√,44.√,45.×,46.×,47.×,48.×,49.×,50.×,51.×,52.√,53.√,54.×,55.×,56.×,57.×,58.√,59.√,60.√,61.×,62.×,63.√,64.√,65.√,66.×,67√,68.×,69.×,70.×,71.√,72.√,73.√,74.×,75.√,76.×,77.×,78.×,79.×,80.√,81.√,82.×,83.×,84.×,85.×,86.√,87.×,88.×,89.√,90.√,91.√,92.×,93.√,94.×,95.×,96.√,97.×,98.√,99.×,100.×,101.√,102.×,103.×,104.×,105.×,106.√,107.√,108.×,109.√,110.√,111.√,112.×,113.×,114.√,115.√,116.×,117.×,118.×。 二、選擇題: 1.D,2.C,3.A,4.B,5.C,6.A,7.A,8.B,9.A,10.B,11.C,12.B,13.C,14.B,15.A,16.D,17.C,18.B,19.A,20.A,21.C,22.B,23.A,24.B,25.A,26.A,27.D,28.A,29.A,30.A,31.D,32.B,33.A,34.C,35.C,36.C,37.C,38.A,39.A,40.A,41.C,42.B,43.A,44.B,45.B,46.D,47.B,48.A,49.D,50.D,51.A,52.C,53.B,54.D,55.C,56.C,57.B,58.D,59.A,60.B,61.B,62.C,63.A,64.C,65.D,66.B,67.C,68.B,69.C,70.D,71.C,72.C,73.DAC,74.C,75.C,76.B,77.B,78.C,79.A,80.A,81.B,82.A,83.A,84.B,85.A,86.A,87.A,88.C。 科技計劃與基金項目申報咨詢合同(一單一算 資金扶持類) 委托方(甲方):項目聯(lián)系人:電話:電子信箱:傳真:通訊地址:受托方(乙方):北京中企訊科技發(fā)展有限公司地址:北京市海淀區(qū)復(fù)興路甲36號百朗園A2段1016室項目聯(lián)系人:張雪梅電話:010-88202511電子信箱: zhongqixunkeji@126.com 傳真:010-88202808依據(jù)《中華人民共和國合同法》,在甲乙雙方保證其主體合法的基礎(chǔ)上,甲方委托乙方就申報國家或省市資助計劃項目提供咨詢服務(wù),為促使項目申報成功,甲、乙雙方本著平等自愿、互惠互利的原則,達成如下協(xié)議,雙方共同恪守。 甲方項目為:(以實際申報名稱為準(zhǔn))。經(jīng)乙方初步判斷,認(rèn)為甲方可以申報的科技計劃或基金是:。 資金扶持類項目概念:是指項目立項后國家部委、省市項目主管部門以無償資助、貸款貼息、退稅等方式為企業(yè)提供資金扶持的科技項目; 第一條、甲方的權(quán)利和義務(wù) 1、甲方應(yīng)及時完整地向乙方提供必要的基礎(chǔ)材料,協(xié)助乙方完成申報材料的編制; 2、甲方根據(jù)乙方的咨詢意見,及時辦理相關(guān)附件,保證申報材料的完整并能成功遞交到政府指定部門; 3、甲方向乙方提供的材料和文件必須真實有效; 4、甲方應(yīng)當(dāng)按時、足額向乙方支付本合同約定的咨詢服務(wù)費; 5、甲方指定的項目聯(lián)系人,負(fù)責(zé)轉(zhuǎn)達甲方的要求,提供資料等,如甲方更換項目聯(lián)系人,應(yīng)當(dāng)書面通知乙方; 6、根據(jù)乙方的咨詢意見,甲方必須認(rèn)真研讀申報須知和申報指南,以確認(rèn)是否符合申報條件和支持范圍。 第二條、乙方的權(quán)利和義務(wù) 1、在甲方提供準(zhǔn)確、完善的可行性研究基礎(chǔ)數(shù)據(jù)的前提下,乙方為甲方申 報上述壹個項目提供咨詢服務(wù)。服務(wù)內(nèi)容包括撰寫申報材料,執(zhí)行全部網(wǎng)上申報流程,紙質(zhì)文件遞交到政府指定部門,必要時需甲方配合完成; 2、乙方應(yīng)盡職完成本合同約定的咨詢服務(wù)內(nèi)容,維護甲方利益; 3、甲方有權(quán)就乙方服務(wù)范圍內(nèi)的事項,隨時向乙方提出口頭或書面詢問,乙方應(yīng)及時作出答復(fù)并按甲方要求隨時告知工作進度; 4、乙方對申報材料中涉及的所有內(nèi)容,不得向除國家或省市資助計劃項目主管部門外的第三方透露; 5、本埠企業(yè)的項目申報材料由乙方負(fù)責(zé)通過地方相關(guān)部門逐級申報,外埠企業(yè)的項目申報材料由甲方按照乙方指導(dǎo)路線通過地方相關(guān)部門或機構(gòu)逐級上報; 6、乙方的項目聯(lián)系人與甲方項目聯(lián)系人就合同中約定的內(nèi)容相互聯(lián)系,如乙方更換項目聯(lián)系人,應(yīng)當(dāng)書面通知甲方。 第三條、傭金及付款方式 1、甲方同意付給乙方申報材料編制費人民幣10000元,合計人民幣壹萬 元整,自本合同簽定之日起三日內(nèi),甲方一次性支付乙方申報材料編制費的全部,即合計人民幣壹萬元整(¥:10000元)。乙方向甲方開具咨詢服務(wù)費發(fā)票。 2、申報材料編制費人民幣壹萬元,僅作為乙方為甲方申報國家或省市資助計劃時編制申報材料,執(zhí)行全部網(wǎng)上申報流程,紙質(zhì)文件遞交的工作,不包括代辦其他事項產(chǎn)生的工本費、行政事業(yè)收費和專業(yè)機構(gòu)如會計師事務(wù)所的審計費、環(huán)評機構(gòu)收費以及工程咨詢甲級證書費用等; 3、由乙方撰寫的國家或省市資助計劃項目申報參評材料,經(jīng)專家評審并獲得批準(zhǔn)立項后,甲方需根據(jù)以下四種情形,支付乙方咨詢服務(wù)費。 (1)對于無償資助項目,在第一筆資助資金到達甲方賬戶十個工作日內(nèi),甲方按照無償資助總額的18%一次性付清乙方咨詢服務(wù)費。乙方向甲方開具咨詢服務(wù)費發(fā)票。 (2)對于貸款貼息項目,政府按照甲方當(dāng)年向銀行還款利息總額的一定比例補貼,在每一筆貼息資金到達甲方賬戶十個工作日內(nèi),甲方按照18%的比例一次性付清乙方咨詢服務(wù)費,直至資助年限結(jié)束;乙方向甲方開具咨詢服務(wù)費發(fā)票。 (3)對于返稅資助項目,在五至八年內(nèi),政府按照甲方每年繳納的稅金總額,按照一定比例返還,在每一年每一筆返還的稅金到達甲方賬戶十個工作日內(nèi),甲方按照18%的比例一次性付清乙方咨詢服務(wù)費,直至資助年限結(jié)束;乙方向甲方開具咨詢服務(wù)費發(fā)票。 (4)對于獎勵類項目,甲方收到政府發(fā)放的獎金十個工作日內(nèi),按照18%的比例一次性付清乙方咨詢服務(wù)費。乙方向甲方開具咨詢服務(wù)費發(fā)票。 4、項目申報是否成功和項目被批準(zhǔn)立項時間以主管部門立項公告或其他政 府文件為準(zhǔn); 5、項目立項后,如甲方需要乙方代為處理項目中期進度匯報、檢查和后期驗收的,需另支付乙方勞務(wù)費,勞務(wù)費的數(shù)額根據(jù)具體情況另議。如因為甲方項目執(zhí)行結(jié)束時技術(shù)指標(biāo)或財務(wù)指標(biāo)未達標(biāo),從而使項目驗收未能通過,其責(zé)任由甲方負(fù)責(zé),乙方不承擔(dān)任何責(zé)任; 6、甲方支付給乙方所有的咨詢服務(wù)費,從自有資金中支付。如延遲支付,按日3‰支付滯納金。 乙方開戶銀行名稱、開戶名和帳號為: 開戶銀行:北京銀行白云支行 開 戶 名:北京中企訊科技發(fā)展有限公司 帳號:***09038720 第四條、甲、乙雙方共同的責(zé)任 根據(jù)服務(wù)內(nèi)容需要,雙方的文件往來必須使用本合同中約定的傳真號碼、通信地址或電子郵件地址傳遞,傳遞后應(yīng)馬上告知對方項目聯(lián)系人簽收。在五個工作日內(nèi),對方若無確認(rèn)回函,可視為對方簽收和對所提及的事項已確認(rèn),因此而造成的損失由有過錯的一方自行承擔(dān)。如一方需要變更傳真號碼、通信地址或電子郵件地址的,必須書面告知另一方。 第五條、服務(wù)流程 第一步:甲方提供初始資料。以下資料需在簽定合同后,在乙方的要求時限內(nèi)提供; 1.甲方近三年和近一個月的財務(wù)報表(包括資產(chǎn)負(fù)債表、損益表、現(xiàn)金流量表),如有審計報告需提供審計報告;固定資產(chǎn)投資明細(xì)表;成本明細(xì)表;執(zhí)行的稅率;項目預(yù)期產(chǎn)銷量(五年) 2.營業(yè)執(zhí)照;稅務(wù)登記證;組織機構(gòu)代碼證;銀行開戶許可證;公司章程;高新技術(shù)企業(yè)證書;雙軟認(rèn)證;ISO認(rèn)證以及其它獲獎證書等。 3.成果鑒定證書、科技查新報告、專利證書或?qū)@芾硗ㄖ獣?、專利說明書、軟件著作權(quán)證書、新品種審定證書、集成電路版權(quán)證書、技術(shù)使用協(xié)議等; 4.檢測或檢驗報告;技術(shù)報告;工作報告;項目備案或批準(zhǔn)文件;環(huán)評意見;公司發(fā)展歷程介紹;主要管理人員和技術(shù)人員以及財務(wù)管理人員的個人簡歷; 第二步:乙方根據(jù)申報項目的具體要求和甲方已經(jīng)提交的資料,列出補充資料清單。并將補充資料清單發(fā)給甲方。甲方應(yīng)在收到乙方補充資料清單后的三個工作日內(nèi)將全部補充資料交給乙方。 第三步:乙方組織申報材料。乙方在收到甲方全部補充資料后開始編寫申報材料,并在十個工作日內(nèi)將申報材料發(fā)送給甲方。 第四步:申報材料確認(rèn)。甲方在接到乙方發(fā)送過來的申報材料后的一個工作 日內(nèi)確認(rèn)申報材料 第五步:項目申報。在乙方確認(rèn)申報材料后的三個工作日內(nèi)應(yīng)完成項目的申報。 第六步:請款。甲方的項目被批準(zhǔn)立項后,乙方協(xié)助甲方向有關(guān)部門請款。在第一筆資金到甲方賬戶時,乙方即完成對甲方的服務(wù)流程。 第六條、合同的解除 本合同出現(xiàn)下列情形時,合同宣告解除: 1、乙方不按本合同的約定提供咨詢服務(wù),經(jīng)甲方指出后,仍不改正的,甲方有權(quán)解除本合同; 2、甲方的委托事項違反法律或者違反道德規(guī)范或者甲方向乙方提供虛假情況的,乙方有權(quán)解除本合同; 3、雙方確定,出現(xiàn)不可抗力等情形,致使本合同的履行成為不必要或不可能的,可以解除本合同。 第七條、合同的終止 本合同出現(xiàn)下列情形時,合同宣告終止: 1、本合同期限屆滿,甲乙雙方不再續(xù)簽合同的; 2、甲乙雙方通過書面協(xié)議自愿解除本合同; 3、因不可抗力致使本合同目的不能實現(xiàn)的; 4、在委托期限屆滿之前,當(dāng)事人一方明確表示或以自己的行為表明不履行合同主要義務(wù)的; 5、當(dāng)事人有其他違約或違法行為致使合同目的不能實現(xiàn)的。 第八條、違約責(zé)任 1、如果乙方未按照主管部門的要求制作并提交相關(guān)申報材料或向甲方提供錯誤的與項目申報有關(guān)的咨詢信息,乙方退還甲方該項申報材料編制費。如果乙方工作人員在整理甲方的申報材料時發(fā)現(xiàn)甲方項目和企業(yè)條件有嚴(yán)重不足而無法申報本合同規(guī)定的科技計劃或者專項資金時,雙方可協(xié)商申報另外的科技計劃或?qū)m椯Y金。 2、如果因為甲方未按照項目申報時效給乙方提供基礎(chǔ)資料和補辦附件或者提供虛假材料導(dǎo)致項目申報失敗,乙方不退還甲方申報材料編制費,并由甲方賠償乙方實際經(jīng)濟損失(經(jīng)濟損失的計算標(biāo)準(zhǔn)由甲乙雙方另行協(xié)商約定); 3、對由乙方初步診斷的國家或省市資助計劃項目并且經(jīng)過甲方認(rèn)真地確認(rèn)后,因甲方未能及時提供附件材料或者提供的附件材料不符合要求,未被政府指定部門受理,視為乙方已經(jīng)完成此項目的申報; 4、乙方無正當(dāng)理由不提供本合同約定的咨詢服務(wù)內(nèi)容或者違反本合同規(guī)定的義務(wù),甲方有權(quán)要求乙方退還全部已付的申報材料編制費。 5、合作期間,如果甲、乙雙方中的任何一方要求終止此合同,因此給對方造成的實際損失應(yīng)由提出要求的一方負(fù)責(zé)賠償。 第九條、合同的變更 本合同履行期間,發(fā)生特殊情況時,甲、乙任何一方需要變更或補充本合同的,一方應(yīng)及時書面通知對方,征得對方同意后即可簽定書面變更、補充合同,該合同將成為正式合同不可分割的部分,與本合同具有同等的法律效力。 第十條、爭議的處理 雙方因履行本合同而發(fā)生的爭議,應(yīng)協(xié)商、調(diào)解解決。協(xié)商、調(diào)解不成的,可向北京市海淀區(qū)人民法院提起訴訟。 第十一條、合同的效力 1、由乙方撰寫的國家或省市資助計劃項目申報參評材料,經(jīng)專家評審并獲得批準(zhǔn)立項后,因無償資助、貸款貼息、返稅、獎勵等政府資助方式發(fā)放的資助資金周期較長,乙方享受項目批準(zhǔn)立項后的權(quán)益不受本合同有效期限和合同解除、合同終止的影響,甲方必須繼續(xù)履行支付乙方無償資助、貸款貼息、返稅、獎勵等政府資助總額的18%的咨詢服務(wù)費,直到項目結(jié)束。 2、本合同自雙方法定代表人或其授權(quán)代表人簽字并加蓋單位公章或合同專用章之日起生效。有效期三年,即自年月日至年月日止。如果該合同中約定的項目申報失敗,乙方在下一個,免收甲方前期申報材料編制費,繼續(xù)為甲方申報該合同約定的項目。乙方為甲方申報該項目的次數(shù)不超過三次。 3、本合同中約定的乙方為甲方申報的國家科技項目不包括只有證書沒有資金扶持類的項目。如國家重點新產(chǎn)品、火炬計劃(一般項目)等。 甲方 :(蓋章)法定代表人/委托代理人:年月日 乙方: 北京中企訊科技發(fā)展有限公司(蓋章)法定代表人/委托代理人: 年月日第二篇:福建省高職單招制造類《金屬加工與實訓(xùn)》復(fù)習(xí)答案
第三篇:科技計劃與基金項目申報咨詢合同(一單一算 資金扶持類)