日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

不同BMP位图与调色板分析

發布時間:2023/12/8 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不同BMP位图与调色板分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

調色板(color table)是單色、16色和256色圖像文件所特有的,相對應的調色板大小是2、16和256,調色板以4字節為單位,每4個字節存放一個顏色值,圖像的數據是指向調色板的索引。

????? 可以將調色板想象成一個數組,每個數組元素的大小為4字節,假設有一256色的BMP圖像的調色板數據為:

?

調色板[0]=黑、調色板[1]=白、調色板[2]=紅、調色板[3]=藍…調色板[255]=黃

????? 圖像數據01 00 02 FF表示調用調色板[1]、調色板[0]、調色板[2]和調色板[255]中的數據來顯示圖像顏色。

????? 在早期的計算機中,顯卡相對比較落后,不一定能保證顯示所有顏色,所以在調色板中的顏色數據應盡可能將圖像中主要的顏色按順序排列在前面,位圖信息頭的biClrImportant字段指出了有多少種顏色是重要的。

????? 每個調色板的大小為4字節,按藍、綠、紅存儲一個顏色值。

????? 打開WINGDI.h文件,搜索"tagRGBTRIPLE"就可以定位到BMP文件的調色板的數據結構定義。

typedef struct tagRGBQUAD { BYTE??? rgbBlue; BYTE??? rgbGreen; BYTE??? rgbRed; BYTE??? rgbReserved; } RGBQUAD;

????? 表5-4列出了tagRGBTRIPLE中各字段的含義。

????????????????????????????????????????????????????????????????? 表5-4?tagRGBTRIPLE結構

?

字??段??名

大小(單位:字節)

描????述

rgbBlue

1

藍色值

rgbGreen

1

綠色值

rgbRed

1

紅色值

rgbReserved

1

保留,總為0

?

????? 如果圖像是單色、16色和256色,則緊跟著調色板的是位圖數據,位圖數據是指向調色板的索引序號。

????? 如果位圖是16位、24位和32位色,則圖像文件中不保留調色板,即不存在調色板,圖像的顏色直接在位圖數據中給出。

??????16位圖像使用2字節保存顏色值,常見有兩種格式:5位紅5位綠5位藍和5位紅6位綠5位藍,即555格式和565格式。555格式只使用了15位,最后一位保留,設為0。

??????24位圖像使用3字節保存顏色值,每一個字節代表一種顏色,按紅、綠、藍排列。

??????32位圖像使用4字節保存顏色值,每一個字節代表一種顏色,除了原來的紅、綠、藍,還有Alpha通道,即透明色。

????? 如果圖像帶有調色板,則位圖數據可以根據需要選擇壓縮與不壓縮,如果選擇壓縮,則根據BMP圖像是16色或256色,采用RLE4或RLE8壓縮算法壓縮。

?

?

???? 1:單色圖,調色板中含有兩種顏色,也就是我們通常說的黑白圖片
???? 4:16色圖
???? 8:256色圖,通常說的灰度圖
??? 16:64K圖,一般沒有調色板,圖像數據中每兩個字節表示一個像素,5個或6個位表示一個RGB分量
??? 24:16M真彩色圖,一般沒有調色板,圖像數據中每3個字節表示一個像素,每個字節表示一個RGB分量
??? 32:4G真彩色,一般沒有調色板,每4個字節表示一個像素,相對24位真彩圖而言,加入了一個透明度,即RGBA模式

總結

以上是生活随笔為你收集整理的不同BMP位图与调色板分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。