當前位置:編程學習大全網 - 源碼下載 - 易語言畫板取點有什麽訣竅?

易語言畫板取點有什麽訣竅?

BMP

BMP是壹種與硬件設備無關的圖像文件格式,使用非常廣。它采用位映射存儲格式,除了圖像深度可選以外,不采用其他任何壓縮,因此,BblP文件所占用的空間很大。BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲數據時,圖像的掃描方式是按從左到右、從下到上的順序。

由於BMP文件格式是Windows環境中交換與圖有關的數據的壹種標準,因此在Windows環境中運行的圖形圖像軟件都支持BMP圖像格式。

典型的BMP圖像文件由三部分組成:位圖文件頭數據結構,它包含BMP圖像文件的類型、顯示內容等信息;位圖信息數據結構,它包含有BMP圖像的寬、高、壓縮方法,以及定義顏色等信息。

具體數據舉例:

如某BMP文件開頭:

424D 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....

BMP文件可分為四個部分:位圖文件頭、位圖信息頭、彩色板、圖像數據陣列,在上圖中已用*分隔。

壹、圖像文件頭

1)1:(這裏的數字代表的是"字",即兩個字節,下同)圖像文件頭。424Dh=’BM’,表示是Windows支持的BMP格式。

2)2-3:整個文件大小。4690 0000,為00009046h=36934。

3)4-5:保留,必須設置為0。

4)6-7:從文件開始到位圖數據之間的偏移量。4600 0000,為00000046h=70,上面的文件頭就是35字=70字節。

5)8-9:位圖圖信息頭長度。

6)10-11:位圖寬度,以像素為單位。8000 0000,為00000080h=128。

7)12-13:位圖高度,以像素為單位。9000 0000,為00000090h=144。

8)14:位圖的位面數,該值總是1。0100,為0001h=1。

二、位圖信息頭

9)15:每個像素的位數。有1(單色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增強型真彩色)。1000為0010h=16。

10)16-17:壓縮說明:有0(不壓縮),1(RLE 8,8位RLE壓縮),2(RLE 4,4位RLE壓縮,3(Bitfields,位域存放)。RLE簡單地說是采用像素數+像素值的方式進行壓縮。T408采用的是位域存放方式,用兩個字節表示壹個像素,位域分配為r5b6g5。圖中0300 0000為00000003h=3。

11)18-19:用字節數表示的位圖數據的大小,該數必須是4的倍數,數值上等於位圖寬度×位圖高度×每個像素位數。0090 0000為00009000h=80×90×2h=36864。

12)20-21:用象素/米表示的水平分辨率。A00F 0000為0000 0FA0h=4000。

13)22-23:用象素/米表示的垂直分辨率。A00F 0000為0000 0FA0h=4000。

14)24-25:位圖使用的顏色索引數。設為0的話,則說明使用所有調色板項。

15)26-27:對圖象顯示有重要影響的顏色索引的數目。如果是0,表示都重要。

三、彩色板

16)28-35:彩色板規範。對於調色板中的每個表項,用下述方法來描述RGB的值:

1字節用於藍色分量

1字節用於綠色分量

1字節用於紅色分量

1字節用於填充符(設置為0)

對於24-位真彩色圖像就不使用彩色板,因為位圖中的RGB值就代表了每個象素的顏色。

如,彩色板為00F8 0000 E007 0000 1F00 0000 0000 0000,其中:

00FB 0000為FB00h=1111100000000000(二進制),是紅色分量的掩碼。

E007 0000為 07E0h=0000011111100000(二進制),是綠色分量的掩碼。

1F00 0000為001Fh=0000000000011111(二進制),是紅色分量的掩碼。

0000 0000總設置為0。

將掩碼跟像素值進行“與”運算再進行移位操作就可以得到各色分量值。看看掩碼,就可以明白事實上在每個像素值的兩個字節16位中,按從高到低取5、6、5位分別就是r、g、b分量值。取出分量值後把r、g、b值分別乘以8、4、8就可以補齊第個分量為壹個字節,再把這三個字節按rgb組合,放入存儲器(同樣要反序),就可以轉換為24位標準BMP格式了。

四、圖像數據陣列

17)17-...:每兩個字節表示壹個像素。陣列中的第壹個字節表示位圖左下角的象素,而最後壹個字節表示位圖右上角的象素。

易的畫板使用的是BMP格式的圖片,要讀被遮擋的畫板點,應當保存圖片後再用查找轉換字節的方式得出各點的姿色。

  • 上一篇:問道java作業題,有分!
  • 下一篇:java代碼糾錯
  • copyright 2024編程學習大全網