




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第1章Windows位圖和調色板1.1 位圖和調色板的概念如今Windows(3.x以及95,98,NT)系列已經(jīng)成為絕大多數(shù)用戶使用的操作系統(tǒng),它比口0武功的一個重要因素是它可視化的漂亮界面。那么Windows是如何顯示圖象的呢?這就要談到位圖(bitmap)。我們知道,普通的顯示器屏幕是由許許多多點構成的,我們稱之為象素。顯示時采用掃要重復上述過程幾描的方法:電子槍每次從左到右掃描一行,為每個象素著色,然后從上到下這樣掃描假設干行,就掃過了一屏。為了防止閃爍,每秒十次。例如我們常說的屏幕分辨率為640X480,刷新頻率為70Hz,意思是說每行要掃描640個象素素,一共有480行,每秒重復掃
2、描屏幕70次o我們稱這種顯示器為位映象設備。所謂位映象,就是指一個二維的象素矩陣,而位圖就是采用位映象方法顯示和存儲的圖象。舉個例子,圖1.1是一幅普通的黑白位圖,圖1.2是被放大后的圖,圖中每個方格代表了一個象素。我們可以看到:整個骷髏就是由這樣一些黑點和白點組成的。圖1.1骷髏圖1.2放大后的骷髏位圖那么,彩色圖是怎么回事呢?我們先來說說三元色RGB既念。我們知道,自然界中的所有顏色都可以由紅、綠、藍(R,G,B)組合而成。有的顏色含有紅色成分多一些,如深紅;有的含有紅色成分少一些,如淺紅。針對含有紅色成分的多少,可以分成0到255共256個等級,0級表示不含紅色成分;255級表示含有10
3、0%勺紅色成分。同樣,綠色和藍色也被分成256級。這種分級概念稱為量化。這樣,根據(jù)紅、綠、藍各種不同的組合我們就能表示出256X256X256,約1600萬種顏色。這么多顏色對于我們人眼來說已經(jīng)足夠豐富了。表1.1常見顏色的RGBS合值顏色RGB紅25500藍02550綠r00255黃:2552550紫2550255青0255255白1255255255里八、000灰128128128你大概已經(jīng)明白了,當一幅圖中每個象素賦予不同的RGB直時,能呈現(xiàn)出五彩繽紛的顏色了,這樣就形成了彩色圖。確實是這樣的,但實際上的做法還有些差異。讓我們來看看下面的例子。有一個長寬各為200個象素,顏色數(shù)為16色的
4、彩色圖,每一個象素都用RGB三個分量表示。因為每個分量有256個級別,要用8位(bit),即一個字節(jié)(byte)來表示,所以每個象素需要用3個字節(jié)。整個圖象要用200X200X3,約120k字節(jié),可不是一個小數(shù)目呀!假設我們用下面的方法,就能省的多。因為是一個16色圖,也就是說這幅圖中最多只有16種顏色,我們可以用一個表:表中的每一行記錄一種顏色的RGB值。這樣當我們表示一個象素的顏色時,只需要指出該顏色是在第幾行,即該顏色在表中的索引值。舉個例子,假設表的第0行為255,0,0(紅色),那么當某個象素為紅色時,只需要標明0即可。讓我們再來計算一下:16種狀態(tài)可以用4位(bit)表示,所以一個
5、象素要用半個字節(jié)。整個圖象要用200X200X0.5,約20k字節(jié),再加上表占用的字節(jié)為3X16=48字節(jié).整個占用的字節(jié)數(shù)約為前面的1/6,省很多吧?這弓RGB的表,就是我們常說的調色板(Palette),另一種叫法是顏色查找表LUT(LookUpTable),似乎更確切一些。Windows位圖中便用到了調色板技術。其實不光是Windows位圖,許多圖象文件格式如pcx、tif、gif等都用到了。所以很好地掌握調色板的概念是非常有用的。有一種圖,它的顏色數(shù)高達256X256X256種,也就是說包含我們上述提到的RGB顏色表示方法中所有的顏色,這種圖叫做真彩色圖(truecolor)。真彩色圖
6、并不是說一幅圖包含了所有的顏色,而是說它具有顯示所有顏色的才能,即最多可以包含所有的顏色。表示真彩色圖時,每個象素直接用RGB三個分量字節(jié)表示,而不采用調色板技術。原因很明顯:假設用調色板,表示一個象素也要用24位,這是因為每種顏色的索引要用24位(因為總共有224種顏色,即調色板有224行),和直接用R,G,B三個分量表示用的字節(jié)數(shù)一樣,不但沒有任何廉價,還要加上一個256X256X256X3個字節(jié)的大調色板。所以真彩色圖直接用RGB三個分量表示,它又叫做24位色圖。1.2 bmp文件格式介紹完位圖和調色板的概念,下面就讓我們來看一看Windows的位圖文件(.bmp文件)的格式是什么樣子的
7、。bmp文件大體上分成四個局部,如圖1.3所示。位圖文件頭BITMAPFILEHEADER位圖信息頭BITMAPINFOHEADER調色板Palette實際的位圖數(shù)據(jù)ImageData圖1.3Windows位圖文件構造示意圖第一局部為位圖文件頭BITMAPFILEHEADER是一個構造,其定義如下:typedefstructtagBITMAPFILEHEADERWORDbfType;DWORDbfSize;WORDbfReserved1;WORDbfReserved2;DWORDbfOffBits;BITMAPFILEHEADER這個構造的長度是固定的,為14個字節(jié)(WOR函無符號16位整數(shù),
8、DWORD;無符號32位整數(shù)),各個域的說明如下:bfType:指定文件類型,必須是0x424D,即字符串“BM,也就是說所有.bmp文件的頭兩個字節(jié)都是“BM。BfSize:指定文件大小,包括這14個字節(jié)。bfReserved1,bfReserved2:為保存字,不用考慮bfOffBits:為從文件頭到實際的位圖數(shù)據(jù)的偏移字節(jié)數(shù),即圖1.3中前三個局部的長度之和。第二局部為位圖信息頭BITMAPINFOHEADE他是一個構造,其定義如下:typedefstructtagBITMAPINFOHEADERDWORDbiSize;LONGbiWidth;LONGbiHeight;WORDbiPla
9、nes;WORDbiBitCountDWORDbiCompression;DWORDbiSizeImage;LONGbiXPelsPerMeter;LONGbiYPelsPerMeter;DWORDbiClrUsed;DWORDbiClrImportant;BITMAPINFOHEADER這個構造的長度是固定的,為40個字節(jié)(LONG為32位整數(shù)),各個域的說明如下:biSize:指定這個構造白長度,為40。BiWidth:指定圖象的寬度,單位是象素。BiHeight:指定圖象的高度,單位是象素。BiPlanes:必須是1,不用考慮。biBitCount:指定表示顏色時要用到的位數(shù),常用的值為
10、1(黑白二色圖),4(16色圖),8(256色),24(真彩色圖)(新的.bmp格式支持32位色,這里就不做討論了)。BiCompression:指定位圖是否壓縮,有效的值為BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS(者B是一些Windows定義好的常量)。要說明的是,Windows位圖可以采用RLE4,和RLE8的壓縮格式,但用的不多。我們今后所討論的只有第一種不壓縮的情況,即biCompression為BIRGB的情況。BiSizeImage:指定實際的位圖數(shù)據(jù)占用的字節(jié)數(shù),其實也可以從以下的公式中計算出來:biSizeImage=biWidth'xbi
11、Height要注意的是:上述公式中的biWidth'必須是4的整倍數(shù)(所以不是biWidth,而是biWidth',表示大于或等于biWidth的,最接近4的整倍數(shù)。舉個例子,假設biWidth=240,那么biWidth'=240;假設biWidth=241,biWidth'=244)。假設biCompression為BI_RGB那么該項可能為零biXPelsPerMeter:指定目的設備的程度分辨率,單位是每米的象素個數(shù),關于分辨率的概念,我們將在第4章詳細介紹。BiYPelsPerMeter:指定目的設備的垂直分辨率,單位同上。BiClrUsed:指定本圖
12、象實際用到的顏色數(shù),假設該值為零,那么用到的顏色數(shù)為biBitCount2。BiClrlmportant:指定本圖象中重要的顏色數(shù),假設該值為零,那么認為所有的顏色都是重要的。第三局部為調色板Palette,當然,這里是對那些需要調色板的位圖文件而言的。有些位圖,如真彩色圖,前面已經(jīng)講過,是不需要調色板的,BITMAPINFOHEADE需直接是位圖數(shù)據(jù)。調色板實際上是一個數(shù)組,共有biClrUsed個元素(假設該值為零,那么有2biBitCount個元素)。數(shù)組中每個元素的類型是一個RGBQUAD造,占4個字節(jié),其定義如下:typedefstructtagRGBQUADBYTErgbBlue;
13、/該顏色的藍色分量BYTErgbGreen;/該顏色的綠色分量BYTErgbRed;/該顏色的紅色分量BYTErgbReserved;/保存值RGBQUAD第四局部就是實際的圖象數(shù)據(jù)了。對于用到調色板的位圖,圖象數(shù)據(jù)就是該象素顏在調色板中的索引值。對于真彩色圖,圖象數(shù)據(jù)就是實際的RGB值。下面針對2色、16色、256色位圖和真彩色位圖分別介紹。對于2色位圖,用1位就可以表示該象素的顏色(一般0表示黑,1表示白),所以一個字節(jié)可以表示8個象素。對于16色位圖,用4位可以表示一個象素的顏色,所以一個字節(jié)可以表示2個象素。對于256色位圖,一個字節(jié)剛好可以表示1個象素。對于真彩色圖,三個字節(jié)才能表示
14、1個象素,哇,好費空間呀!沒方法,誰叫你想讓圖的顏色顯得更亮麗呢,有得必有失嘛。要注意兩點:(1)每一行的字節(jié)數(shù)必須是4的整倍數(shù),假設不是,那么需要補齊。這在前面介紹biSizeImage時已經(jīng)提到了。(2)一般來說,BM件的數(shù)據(jù)從下到上,從左到右的。也就是說,從文件中最先讀到的是圖象最下面一行的左邊第一個象素,然后是左邊第二個象素接下來是倒數(shù)第二行左邊第一個象素,左邊第二個象素依次類推,最后得到的是最上面一行的最右一個象素。好了,終于介紹完bmp文件構造了,是不是覺得頭有些大?別著急,對照著下面的程序,你就會很清楚了(我最愛看源程序了,呵呵)。1.3顯示一個bmp文件的C程序下面的函數(shù)Loa
15、dBmpFile,其功能是從一個.bmp文件中讀取數(shù)據(jù)(包括BITMAPINFOHEADE砌色板和實際圖象數(shù)據(jù)),將其存儲在一個全局內存句柄hImgData中,這個hImgData將在以后的圖象處理程序中用到。同時填寫一個類型為HBITMAP勺全局變量hBitmap和一個類型為HPALETTE勺全局變量hPalette。這兩個變量將在處理WM_PAINT肖息時用到,用來顯示位圖。該函數(shù)的兩個參數(shù)分別是用來顯示位圖的窗口句柄,和.bmp文件名(全途徑)。當函數(shù)成功時,返回TRUE否那么返回FALSEBITMAPFILEHEADERbf;BITMAPINFOHEADERbi;BOOLLoadBmp
16、File(HWNDhWnd,char*BmpFileName)HFILEhf;/指向BITMAPINFOHEADER造的指針LPBITMAPINFOHEADERlpImgData;LOGPALETTE調色板構造的指針LPRGBQUADRGBQUAD造的指針HPALETTEe;/用來保存設備中原來的調色板HDChDc;/設備句柄HLOCAL/存儲調色板的局部內存句柄DWORDtes;/每一行的字節(jié)數(shù)DWORDe;/實際的圖象數(shù)據(jù)占用的字節(jié)數(shù)/實際用到的顏色數(shù),即調色板數(shù)組中的顏色個數(shù)文件句柄*pPal; / 指向邏輯lpRGB; / 指 向hPrevPaletthPal;LineByImgSiz
17、NumColDWORDors;DWORDi;if(hf=_lopen(BmpFileName,OF_READ)=HFILE_ERROR)MessageBox(hWnd,"Filec:test.bmpnotfound!","ErrorMessage",MB_OK|MB_ICONEXCLAMATION);returnFALSE;/翻開文件錯誤,返回/將BITMAPFILEHEADER造從文件中讀出,填寫到bf中_lread(hf,(LPSTR)&bf,sizeof(BITMAPFILEHEADER);將BITMAPINFOHEADER造從文件中讀出,
18、填寫到bi中_lread(hf,(LPSTR)&bi,sizeof(BITMAPINFOHEADER);/我們定義了一個宏#defineWIDTHBYTES(i)(i+31)/32*4)上面曾經(jīng)/提到過,每一行的字節(jié)數(shù)必須是4的整倍數(shù),只要調用就能完成這一換算。舉一個例/子,對于2色圖,假設圖象寬是31,那么每一行需要31位存儲,合3個/字節(jié)加7位,因為字節(jié)數(shù)必須是4的整倍數(shù),所以應該是4,而此時的/biWidth=31,biBitCount=1,WIDTHBYTES(31*1)=4,和我們設想的一樣。/再舉一個256色的例子,假設圖象寬是31,那么每一行需要31個字節(jié)存/儲,因為字節(jié)
19、數(shù)必須是4的整倍數(shù),所以應該是32,而此時的/biWidth=31,biBitCount=8,WIDTHBYTES(31*8)=32,我們設想的一樣。你可/以多舉幾個例子來驗證一下/LineBytes為每一行的字節(jié)數(shù)/ImgSize為實際的圖象數(shù)據(jù)占用的字節(jié)數(shù)ImgSize=(DWORD)LineBytes*bi.biHeight;/NumColors為實際用到的顏色數(shù),即調色板數(shù)組中的顏色個數(shù)if(bi.biClrUsed!=0)/假設bi.biClrUsed不為零,即為實際用到的顏色數(shù)NumColors=(DWORD)bi.biClrUsed;else/否那么,用到的顏色數(shù)為2biBitC
20、ount。switch(bi.biBitCount)case1:NumColors=2;break;case4:NumColors=16;break;case8:NumColors=256;break;case24:NumColors=0;/對于真彩色圖,沒用到調色板break;default:/不處理其它的顏色數(shù),認為出錯。MessageBox(hWnd,"Invalidcolornumbers!","ErrorMessage",MB_OK|MB_ICONEXCLAMATION);_lclose(hf);returnFALSE;/關閉文件,返回FALS
21、Eif(bf.bfOffBits!=(DWORD)(NumColors*sizeof(RGBQUAD)+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)/計算出的偏移量與實際偏移量不符,一定是顏色數(shù)出錯MessageBox(hWnd,"Invalidcolornumbers!","ErrorMessage",MB_OK|MB_ICONEXCLAMATION);_lclose(hf);returnFALSE;/關閉文件,返回FALSEbf.bfSize=sizeof(BITMAPFILEHEADER)+si
22、zeof(BITMAPINFOHEADER)+NumColors*sizeof(RGBQUAD)+ImgSize;/分配內存,大小為BITMAPINFOHEADER造長度加調色板+實際位圖if(hImgData=GlobalAlloc(GHND,(DWORD)(sizeof(BITMAPINFOHEADER)+NumColors*sizeof(RGBQUAD)+ImgSize)=NULL)/分配內存錯誤MessageBox(hWnd,"Errorallocmemory!","ErrorMessage",MB_OK|MB_ICONEXCLAMATION);
23、_lclose(hf);returnFALSE;/關閉文件,返回FALSE/指針lpImgData指向該內存區(qū)lpImgData=(LPBITMAPINFOHEADER)GlobalLock(hImgData);/文件指針重新定位到BITMAPINFOHEADER始處_llseek(hf,sizeof(BITMAPFILEHEADER),SEEK_SET);/將文件內容讀入lpImgData_hread(hf,(char*)lpImgData,(long)sizeof(BITMAPINFOHEADER)+(long)NumColors*sizeof(RGBQUAD)+ImgSize);_lcl
24、ose(hf);/關閉文件if(NumColors!=0)/NumColors不為零,說明用到了調色板/為邏輯調色板分配局部內存,大小為邏輯調色板構造長度加/NumColors個PALETTENTRYhPal=LocalAlloc(LHND,sizeof(LOGPALETTE)+NumColors*sizeof(PALETTEENTRY);/指針pPal指向該內存區(qū)pPal=(LOGPALETTE*)LocalLock(hPal);/填寫邏輯調色板構造的頭pPal->palNumEntries=NumColors;pPal->palVersion=0x300;/lpRGB指向的是調
25、色板開始的位置lpRGB=(LPRGBQUAD)(LPSTR)lpImgData+(DWORD)sizeof(BITMAPINFOHEADER);/填寫每一項for(i=0;i<NumColors;i+)pPal->palPalEntryi.peRed=lpRGB->rgbRed;pPal->palPalEntryi.peGreen=lpRGB->rgbGreen;pPal->palPalEntryi.peBlue=lpRGB->rgbBlue;pPal->palPalEntryi.peFlags=(BYTE)0;lpRGB+;/指針移到下一項/
26、產(chǎn)生邏輯調色板,hPalette是一個全局變量hPalette=CreatePalette(pPal);/釋放局部內存LocalUnlock(hPal);LocalFree(hPal);/獲得設備上下文句柄hDc=GetDC(hWnd);if(hPalette)/假設剛剛產(chǎn)生了邏輯調色板/將新的邏輯調色板選入DC將舊的邏輯調色板句柄保存在/hPrevPalettehPrevPalette=SelectPalette(hDc,hPalette,FALSE);RealizePalette(hDc);/產(chǎn)生位圖句柄hBitmap=CreateDIBitmap(hDc,(LPBITMAPINFOHEA
27、DER)lpImgData,(LONG)CBM_INIT,(LPSTR)lpImgData+sizeof(BITMAPINFOHEADER)+NumColors*sizeof(RGBQUAD),(LPBITMAPINFO)lpImgData,DIB_RGB_COLORS);/將原來的調色板(假設有的話)選入設備上下文句柄if(hPalette&&hPrevPalette)SelectPalette(hDc,hPrevPalette,FALSE);RealizePalette(hDc);ReleaseDC(hWnd,hDc);釋放設備上下文GlobalUnlock(hlmgDat
28、a);解鎖內存區(qū)returnTRUE;/成功返回對上面的程序要說明兩點:對于需要調色板的圖,要想正確地顯示,必須根據(jù)bmp文件,產(chǎn)生邏輯調色板。產(chǎn)生的方法是:為邏輯調色板指針分配內存,大小為邏輯調色板構造(LOGPALETT張度加NumColors個PALETTENTRY/J(調色板的每一項都是一個PALETTEENTRY造);填寫邏輯調色板構造的頭pPal->palNumEntries=NumColors;pPal->palVersion=0x300;從文件中讀取調色板的RGB直,填寫到每一項中;產(chǎn)生邏輯調色板:hPalette=CreatePalette(pPal)。(2)產(chǎn)生
29、位圖(BITMAP)句柄,該項工作由函數(shù)CreateDIBitmap來完成。hBitmap=CreateDIBitmap(hDc,(LPBITMAPINFOHEADER)lpImgData,(LONG)CBM_INIT,(LPSTR)lpImgData+sizeof(BITMAPINFOHEADER)+NumColors*sizeof(RGBQUAD),(LPBITMAPINFO)lpImgData,DIB_RGB_COLORS);CreateDIBitmap的作用是產(chǎn)生一個和Windows設備無關的位圖。該函數(shù)的第一項參數(shù)為設備上下文句柄。假設位圖用到了調色板,要在調用CreateDIBit
30、map之前將邏輯調色板選入該設備上下文中,產(chǎn)生hBitmap后,再把原調色板選入該設備上下文中,并釋放該上下文;第二項為指向BITMAPINFOHEADER指針;第三項就用常量CBM_INI,不用考慮;第四項為指向調色板的指針;第五項為指向BITMAPINFO包才BITMAPINFOHEADER,色板,及實際的圖象數(shù)據(jù))的指針;第六項就用常量DIB_RGB_COLOR杯用考慮。上面提到了設備上下文,相信編過Windows程序的讀者對它并不陌生,這里再簡單介紹一下。Windows操作系統(tǒng)統(tǒng)一管理著諸如顯示,打印等操作,將它們看作是一個個的設備,每一個設備都有一個復雜的數(shù)據(jù)構造來維護。所謂設備上下
31、文就是指這個數(shù)據(jù)構造。然而,我們不能直接和這些設備上下文打交道,只能通過引用標識它的句柄(實際上是一個整數(shù)),讓Windows去做相應的處理。產(chǎn)生的邏輯調色板句柄hPalette和位圖句柄hBitmap要在處理WM_PAIN稍息時使用,這樣才能在屏幕上顯示出來,處理過程如下面的程序。StaticHDChDC,hMemDC;PAINTSTRUCTps;caseWM_PAINT:hDC=BeginPaint(hwnd,&ps);獲得屏幕設備上下文if(hBitmap)/hBitmap一開始是NULL當不為NULL時表示有圖hMemDC=CreateCompatibleDC(hDC);建立一
32、個內存設備上下文if(hPalette)/有調色板/將調色板選入屏幕設備上下文SelectPalette(hDC,hPalette,FALSE);/將調色板選入內存設備上下文SelectPalette(hMemDC,hpalette,FALSE);RealizePalette(hDC);/將位圖選入內存設備上下文SelectObject(hMemDC,hBitmap);/顯示位圖BitBlt(hDC,0,0,bi.biWidth,bi.biHeight,hMemDC,0,0,SRCCOPY);/釋放內存設備上下文DeleteDC(hMemDC);/釋放屏幕設備上下文EndPaint(hwnd,
33、&ps);break;在上面的程序中,我們調用CreateCompatibleDC創(chuàng)立一個內存設備上下文。SelectObject函數(shù)將與設備無關的位圖選入內存設備上下文中。然后我們調用BitBlt函數(shù)在內存設備上下文和屏幕設備上下文中進展位拷貝。由于所有操作都是在內存中進展,所以速度很快。BitBlt函數(shù)的參數(shù)分別為:1.目的設備上下文,在上面的程序里,為屏幕設備上下文,假設改成打印設備上下文,就不是顯示位圖,而是打??;2.目的矩形左上角點x坐標;3.目的矩形左上角點y坐標,在上面的程序中,2和3為(0,0),表示顯示在窗口的左上角;4.目的矩形的寬度;5.目的矩形的高度;6.源設備
34、上下文,在上面的程序里,為內存設備上下文;7.源矩形左上角點x坐標;8.源矩形左上角點y坐標;9.操作方式,在這里為SRCCORY表示直接將源矩形拷貝到目的矩形。還可以是反色,擦除,做“與運算等操作,詳細細節(jié)見VC+幫助。你可以13t著改改第2、3、4、5、7、8、9項參數(shù),就能體會到它們的含義了。哇,終于講完了。是不是覺得有點枯燥?這一章是有點兒枯燥,特別是當你對Windows的編程并不清楚時,就更覺得如此。不過,當一幅漂亮的bmp圖顯示在屏幕上時,你還是會興奮地大叫“Yeah!,至少當年我是這樣。在本書的附盤中包含所有的源程序,包括頭文件和資源文件和例圖。特別要注意的是,退出時,別忘了釋放
35、內存和資源,這是每個程序員應該養(yǎng)成的習慣。這些個程序并不是很完善,例如,假設一幅圖很大,屏幕顯示不下怎么辦?你可以試著自己加上滾動條。另外,為了節(jié)省篇幅,.bmp文件名被固定為c:test.bmp,可以自己參加翻開文件對話框,任意選擇你要顯示的文件。圖1.4為程序運行時的畫面。圖1.4運行時的畫面最后,再介紹一個命令行編譯的竅門。為什么要用命令行編譯呢?主要有兩個好處:第一,不用進入IDE(集成開發(fā)環(huán)境),節(jié)省了時間,而且編譯速度也比較快;第二,對于簡單的程序,不用生成工程文件.mdp或.mak,直接就能生成.exe文件,這一點,在下面的例子中可以看到。在安裝完VisualC+時,在bin目錄下會產(chǎn)生一個VCVARS32.BATC件,它的作用是在命令行編譯時設置正確的環(huán)境變量,如存放頭文件的INCLUDE目錄,存放庫文件的LIB目錄等。假設你沒找到這個批處理文件,可以參考下面的例子,自己做一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024云南普洱綜交運輸服務有限公司駕駛員招聘10人筆試參考題庫附帶答案詳解
- 2025年湖北藝術職業(yè)學院單招職業(yè)技能測試題庫必考題
- 2025年湖南環(huán)境生物職業(yè)技術學院單招職業(yè)技能測試題庫一套
- 2025至2030年中國正裝皮鞋數(shù)據(jù)監(jiān)測研究報告
- 第九單元實驗活動7粗鹽中難溶性雜質的去除教學設計-2024-2025學年九年級化學人教版(2024)下冊
- 2025年黑龍江農業(yè)經(jīng)濟職業(yè)學院單招職業(yè)傾向性測試題庫參考答案
- 紹興市上虞區(qū)城北實驗中學人教版七年級下冊歷史與社會第五單元第三課 地域差異顯著教學設計
- 2025屆安徽省部分學校高三上學期12月質檢考物理試題(解析版)
- 2025至2030年中國染色經(jīng)緯彈力布數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國機動單桿拉力機數(shù)據(jù)監(jiān)測研究報告
- 2024年江蘇經(jīng)貿職業(yè)技術學院單招職業(yè)適應性測試題庫
- 《大白菜種植栽培技》課件
- 北京工業(yè)大學《數(shù)據(jù)挖掘》2023-2024學年第一學期期末試卷
- 2024年物聯(lián)網(wǎng)安裝調試員(中級工)職業(yè)資格鑒定考試題庫(含答案)
- 標準化機房改造方案
- 珠海市第三人民醫(yī)院中醫(yī)智能臨床輔助診療系統(tǒng)建設方案
- 早產(chǎn)臨床診斷與治療指南
- 工程簽證單完整版
- 《義務教育數(shù)學課程標準(2022年版)》初中內容解讀
- 2025屆高三化學一輪復習 原電池 化學電源(第一課時)課件
- 全院護理查房(食管裂孔疝)
評論
0/150
提交評論