BMP圖形格式分析和圖象顯示ppt課件_第1頁
BMP圖形格式分析和圖象顯示ppt課件_第2頁
BMP圖形格式分析和圖象顯示ppt課件_第3頁
BMP圖形格式分析和圖象顯示ppt課件_第4頁
BMP圖形格式分析和圖象顯示ppt課件_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、本次課程安排本次課程安排v本設計的目的、內容和基本要求v課程設計題目與設計內容簡介v基本繪圖函數介紹v模擬嵌入式實時操作系統簡介1. 1. 本設計的目的、內容和基本要求本設計的目的、內容和基本要求目的本課程設計的目的是通過一個小設計實例來加深對C語言的理解和應用,在完成了本次課程設計后能夠較為熟練的使用C語言編寫小規模的應用程序以實現特定的功能。1. 1. 本設計的目的、內容和基本要求本設計的目的、內容和基本要求內容BMP圖形格式分析和顯示1. 1. 本設計的目的、內容和基本要求本設計的目的、內容和基本要求基本要求程序具有較強的可讀性,關鍵代碼必須有注釋;注意代碼的書寫風格。2. BMP2.

2、BMP圖像顯示圖像顯示利用C 語言實現BMP 格式圖象文件的分析和顯示。主要內容包括: 完成BMP 格式圖像的顯示,要求在提供的畫布上循環的顯示某一文件夾下面所有的BMP 文件(支持所有BMP格式);實現圖像的特效顯示(淡入淡出,百頁窗等等)。 2. BMP2. BMP圖像顯示圖像顯示2.1 計算機中的顏色2.2 BMP文件格式2.3 RLE壓縮算法簡介2.1 2.1 計算機中的顏色表示計算機中的顏色表示v計算機如何表示顏色v 三基色原理(Red Green Blue),每一基色用一個字節表示;v 可以在Winsows自帶的畫圖軟件中自己配色來了解計算機中如何表示顏色。v紅色:0 xFF 0

3、x00 0 x00v白色:0 xFF 0 xFF 0 xFFv黑色:0 x00 0 x00 0 x002.1 2.1 計算機中的顏色表示計算機中的顏色表示v單色(21)v4位色(24)v8位色(28)v16位色(216)v24位色(224)v32位色(232)需要調色板需要調色板(顏色表顏色表)不需要調色板不需要調色板?2.1 2.1 計算機中的顏色表示計算機中的顏色表示v 一個2*8的圖形如何表示v (124位v 0 xff0000 0 x0000ff 0 xff0000 0 x0000ffv 0 xff0000 0 x0000ff 0 xff0000 0 x0000ffv 0 xff000

4、0 0 x0000ff 0 xff0000 0 x0000ffv 0 xff0000 0 x0000ff 0 xff0000 0 x0000ffv (216位565模式)v 0 xf800 0 x001f 0 xf800 0 x001f v 0 xf800 0 x001f 0 xf800 0 x001fv 0 xf800 0 x001f 0 xf800 0 x001fv 0 xf800 0 x001f 0 xf800 0 x001f位圖數據2.1 2.1 計算機中的顏色表示計算機中的顏色表示v 一個2*8的圖形如何表示v (31位v 建立調色板v 0:0 xff0000 1:0 x0000ff

5、v 位圖數據v 01010101 10101010 (0 x55 0 xaa)v (48位v 建立調色板v 0:0 xff0000 1:0 x0000ff . . . . 255: 0 x000000v 位圖數據v 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00v 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00 0 x01 0 x00位圖數據2.2 BMP2.2 BMP文件格式文件格式一般BMP文件可以看成4個部分組成:BMP文件頭BMP信息頭顏色表(調色板) (optional)定義BMP位圖數據2.2 BMP2.2 B

6、MP文件格式文件格式1.BMP文件頭文件信息頭字節偏移名稱大小內容0 x0000文件標識2字節識別位圖的類型,一般為“BM”0 x0002文件大小4字節文件大小(以字節為單位)0 x0006保留4字節保留,設置為00 x000a位圖數據偏移4字節從文件開始到位圖數據開始之間的偏移量(字節為單位)2.BMP信息頭 圖象信息頭字節偏移名稱大小內容0 x000e信息頭長度4信息頭長度0 x0012寬4位圖的寬度0 x0016高4位圖的高度0 x001a面數2位圖的面數,總是10 x001c位/象素2每個象素的位數 0 x001e壓縮4壓縮說明 0 x0022位圖數據大小4位圖數據的大小0 x0026

7、水平分辨率4水平分辨率0 x002a垂直分辨率4垂直分辨率0 x002e顏色數4位圖使用的顏色數0 x0032重要顏色4指定重要的顏色數。2.2 BMP2.2 BMP文件格式文件格式2.2 BMP2.2 BMP文件格式文件格式3.顏色表(調色板)顏色表字節偏移名稱大小內容根據BMP版本的不同而不同調色板N4調色板規范。對于調色板中的每個表項,這4個字節用下述方法來描述RGB的值: 藍色分量: 1字節綠色分量: 1字節紅色分量: 1字節填充符: 1字節2.2 BMP2.2 BMP文件格式文件格式4.位圖數據圖象數據字節偏移名稱大小內容根據BMP版本的不同而不同位圖圖象數據不定該域的大小取決于壓縮

8、方法及圖像的尺寸和圖像的位深度,它包含所有的位圖數據字節,這些數據可能是彩色調色板的索引號,也可能是實際的RGB值,這將根據圖像信息頭中的位深度值來決定。2.2 BMP2.2 BMP文件格式文件格式v實例分析v 實例1基本屬性:寬:107 高:47 顏色深度:24位色文件大小:15282圖象頭BM文件大小0 x3BB2保留字段0 x0000位圖數據開始偏移圖象頭信息大小位圖寬度0 x6B107位圖高度0 x2F=47圖象面數顏色深度0 x182424位色壓縮方式無壓縮位圖數據大小0 x7C3B位圖數據區域2.2 BMP2.2 BMP文件格式文件格式v實例分析v 實例2基本屬性:寬:107 高:

9、47 顏色深度:8位色文件大?。?154文件標識BM文件大小0 x180A保留字段0 x0000圖象數據開始偏移圖象信息頭大小圖象寬度0 x6B107圖象高度0 x2F47圖象面數1位數/象素0 x88位色壓縮方式0無壓縮位圖數據大小(字節)0 x13D4顏色表(調色板)區域位圖數據區域2.3 RLE2.3 RLE壓縮算法簡介壓縮算法簡介v為什么壓縮?v壓縮方法分類? 考慮未壓縮的BMP文件,它們通常比同一幅圖像的經過壓縮后的文件格式要大很多。例如,一個800600的24位幾乎占據1.4MB空間。因此它們通常不適合在網絡或者其他應用場合。 無損壓縮, 如:RLE,Huffman等等; 有損壓縮

10、,如:DCT等等從數據冗余的角度對數據進行壓縮,無損壓縮方法的優點是能夠比較好地保持圖像的質量,但是相對來說這種方法的壓縮率比較低。壓縮數據 原始數據如:RAR,winzip等等文件壓縮有損壓縮利用了人類對圖像或聲波中的某些頻率成分不敏感的特性,允許壓縮過程中損失一定的信息;雖然不能完全回復原始數據,但是所損失的部分對理解原始圖像的影響縮小,卻換來了大得多的壓縮比。有損壓縮廣泛應用于語音,圖像和視頻數據的壓縮 。原始數據 壓縮數據例如:mp3,jpeg,mpeg等等2.3 RLE2.3 RLE壓縮算法簡介壓縮算法簡介行程壓縮編碼(Run Length Encoding)BI_RLE8 每個象素

11、為8比特的RLE壓縮編碼,可使用編碼方式和絕對方式中的任何一種進行壓縮,這兩種方式可在同一幅圖中的任何地方使用。 編碼方式 絕對方式 由2個字節組成,第一個字節指定使用相同顏色的象素數目,第二個字節指定使用的顏色索引。此外,這個字節對中的第一個字節可設置為0,聯合使用第二個字節的值表示: 第二個字節的值為0:行的結束。 第二個字節的值為1:圖象結束。 第二個字節的值為2:其后的兩個字節表示下一個象素從當前開始的水平和垂直位置的偏移量。 絕對方式:第一個字節設置為0,而第二個字節設置為0 x030 xFF之間的一個值。在這種方式中,第二個字節表示跟在這個字節后面的字節數,每個字節包含單個象素的顏

12、色索引。 例如:如下面用16進制表示的8-位壓縮圖象數據序列 03 04 05 06 00 03 45 56 67 00 02 78 00 02 05 01 02 78 00 00 09 1E 00 01 這些壓縮數據可解釋為 : 壓縮數據擴展數據03 0404 04 0405 0606 06 06 06 0600 03 45 56 67 0045 56 6702 7878 7800 02 05 01從當前位置右移5個位置后向下移一行02 7878 7800 00行結束09 1E1E 1E 1E 1E 1E 1E 1E 1E 1E00 01RLE編碼圖象結束行程壓縮編碼(Run Length

13、Encoding)BI_RLE4 每個象素為4比特的RLE壓縮編碼,同樣也可使用編碼方式和絕對方式中的任何一種進行壓縮,這兩種方式也可在同一幅圖中的任何地方使用 。 編碼方式 絕對方式 由2個字節組成,第一個字節指定象素數目,第二個字節包含兩種顏色索引,一個在高4位,另一個在低4位。第一個象素使用高4位的顏色索引,第二個使用低4位的顏色索引,第3個使用高4位的顏色索引,BI_RLE4也同樣聯合使用第二個字節中的值表示: 第二個字節的值為0:行的結束。 第二個字節的值為1:圖象結束。 第二個字節的值為2:其后的兩個字節表示下一個象素從當前開始的水平和垂直位置的偏移量。 這個字節對中的第一個字節設

14、置為0,第二個字節包含有顏色索引數,其后續字節包含有顏色索引,顏色索引存放在該字節的高、低4位中,一個顏色索引對應一個象素。2.3 RLE2.3 RLE壓縮算法簡介壓縮算法簡介2.3 RLE2.3 RLE壓縮算法簡介壓縮算法簡介 例如:如下面用16進制表示的4-位壓縮圖象數據序列 03 04 05 06 00 06 45 56 67 00 04 78 00 02 05 01 04 78 00 00 09 1E 00 01 這些壓縮數據可解釋為 : 壓縮數據擴展數據03 040 4 005 060 6 0 6 000 06 45 56 67 004 5 5 6 6 704 787 8 7 800

15、 02 05 01從當前位置右移5個位置后向下移一行04 787 8 7 800 00行結束09 1E1 E 1 E 1 E 1 E 100 01RLE編碼圖象結束3. 3. 滾動字幕的實現滾動字幕的實現主要內容包括:1. 熟悉點陣字庫的存取規則;2. 讀取文件的輸入信息,包括滾動方式,顯示位置、尺寸以及內容等;3.利用C語言實現在指定位置滾動顯示文件中的內容。3. 3. 滾動字幕的實現滾動字幕的實現v 點陣字庫簡介v 區位碼v GB2312字符集構成一個94行、94列的表,行號稱為區號,列號稱為位號,每一個漢字用它所在的區號和位號來表示;v 機內碼v 一個漢字字符由兩個字節的機內碼表示,分別

16、稱為高字節內碼和低字節內碼。它們和區位碼的聯系在于:v 區碼高字節內碼0 xa0,位碼低字節內碼0 xa0。v 如:漢字 “升”,機內碼為 0 xc9fdv 區碼=0 xc9-0 xa0=0 x29 位碼=0 xfd-0 xa0=0 x5d3. 3. 滾動字幕的實現滾動字幕的實現v漢字點陣字庫存放方式v 從第1區15區 符號v 從第16區55區 一級漢字v 從第56區87區 二級漢字v字模在字庫中按照區位碼從小到大排列v每字符占字庫大小由點陣大小決定,如1616點陣的字庫,每個字符占32字節v 2424點陣的字庫,每個字符占72字節4. 4. 基本繪圖函數介紹基本繪圖函數介紹1.GFMDraw

17、Pixel();2.GFMDrawLine();3.GFMDrawRectangle();4.GFMDrawCircle();5.GFMReadRectangle();6.GFMWriteRectangl();4. 4. 基本繪圖函數介紹基本繪圖函數介紹1.GFM_DrawPixel(INT32U whichColor, INT32U x, INT32U y, INT32U pixelCount)(15,10)GFM_DrawPixel( 0 xFFFF0000, 15, 10, 1);(12,35)GFM_DrawPixel( 0 xFFFF0000, 12, 35, 4);4. 4. 基本

18、繪圖函數介紹基本繪圖函數介紹2.GFMDrawLine(INT32U startX,INT32U startY,INT32U endX, INT32U endY,INT32U Color);GFM_DrawLine( 0,26,16,26,0 xFFFF0000);GFM_DrawLine( 12,2,2,12,0 xFFFF0000, );(12,2)(2,12)(16,26)(0,26)4. 4. 基本繪圖函數介紹基本繪圖函數介紹3.GFMDrawRectangle(INT32U x,INT32U y,INT32U width,INT32U height, INT32U color, BO

19、OL fill);(26,10)GFM_DrawRectangle(2,2,25,9,0 xFFFF0000,0); GFM_DrawRectangle(2,2,25,9,0 xFFFF0000,1); (2,2)4. 4. 基本繪圖函數介紹基本繪圖函數介紹4.GFMDrawCircle(INT32U xCentre,INT32U yCentre,INT32U r,INT32U color,BOOL fill );GFM_DrawCircle(20,15,10,0 xFFFF0000,0 );r=10(20,15)GFM_DrawCircle(20,15,10,0 xFFFF0000,1 );

20、4. 4. 基本繪圖函數介紹基本繪圖函數介紹5.GFMReadRectangle(INT32U x,INT32U y,INT32U width,INT32U height, INT8U *dest);(x,y)widthheight4. 4. 基本繪圖函數介紹基本繪圖函數介紹6.GFMWriteRectangl(INT32U x,INT32U y,OSD_RECT rect,UINT8 *source, INT32U width,INT32U height);提示消息5. 5. 實時操作系統簡介實時操作系統簡介v單任務和多任務(task)v消息和消息隊列(message, queue)v信號量

21、(semaphore)5. 5. 實時操作系統簡介實時操作系統簡介v任務(task)v基本函數調用v UINT32 DTOS_DRV_CreateTask( v void (*task)(void),v INT32U priority,v INT32U stackSize,v INT8S Name);v void DTOS_DRV_DelayTask( INT16 ms);5. 5. 實時操作系統簡介實時操作系統簡介v 消息和隊列(message/queue)v 基本函數調用v UINT32 DTOS_DRV_CreatQueue( vINT32U QueueSize );v INT32S DTOS_DRV_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論