BMP位圖之8位位圖(三)

起始結構

typedef struct tagBITMAPFILEHEADER {

WORD bfType; //類型名,字符串“BM”,

DWORD bfSize; //文件大小

WORD bfReserved1; //保留字

WORD bfReserved2; //保留字

DWORD bfOffBits; //實際位圖數據的偏移字節數,即前三個部分長度之和

} BITMAPFILEHEADER;

對應數據

WORD bfType : 0x4d42

DWORD bfSize:0xb6836

WORD bfReserved1:0x0

WORD bfReserved2:0x0

DWORD bfOffBits:0x436

緊跟著是

typedef struct tagBITMAPINFOHEADER{

DWORD biSize; //指定此結構體的長度,0x28

LONG biWidth; //位圖寬

LONG biHeight; //位圖高.為正,表示從下往上存儲,左下角是起點。為負,表示從上往下儲存,左上角是起點

WORD biPlanes; //平面數,為1

WORD biBitCount //采用顏色位數,可以是1,2,4,8,16,24,32

DWORD biCompression; //壓縮方式,可以是0,1,2,其中0表示不壓縮

DWORD biSizeImage; //實際位圖數據占用的字節數

LONG biXPelsPerMeter; //X方向分辨率

LONG biYPelsPerMeter; //Y方向分辨率

DWORD biClrUsed; //使用的顏色數,如果為0,則表示默認值(2^顏色位數)

DWORD biClrImportant; //重要顏色數,如果為0,則表示所有顏色都是重要的

} BITMAPINFOHEADER;

對應數據

DWORD biSize:0x28

LONG biWidth:0x480

LONG biHeight:0x288

WORD biPlanes:0x1

WORD biBitCount:0x8

DWORD biCompression:0x0

DWORD biSizeImage:0xb6400

LONG biXPelsPerMeter:0x0

LONG biYPelsPerMeter:0x0

DWORD biClrUsed:0x0

DWORD biClrImportant:0x0

1位位圖有調色板2^8=256個,總共256*4=0x400個字節,加上0x36,正好是偏移地址0x436

對應是以下結構的數組

typedef struct tagRGBQUAD {

BYTE rgbBlue; //藍色

BYTE rgbGreen; //綠色

BYTE rgbRed; //紅色

BYTE rgbReserved; //保留值,常用于Alpha透明值

} RGBQUAD;

調色板太多省略

其余是數據區域,關于8位位圖,有兩種。本隨筆中展示的是BI_RGB(未壓縮),另一種是BI_RLE8(數據區數據壓縮),壓縮方式請參考下面微軟的官方鏈接.

原理地址:https://docs.microsoft.com/zh-cn/windows/desktop/gdi/bitmap-compression

轉載于:https://www.cnblogs.com/dalgleish/p/9575638.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277364.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277364.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277364.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DNN 漢化中的問題????

今天看到了一份已經漢化過的DNN但是比較奇怪,當第一次運行后我所指定的新數據庫中并沒有添加新的內容,但是網站上的確是已經漢化過了的,不知道它把漢化的內容放到了哪里??? 另外他所漢化界面的地方&#x…

php 打印對象詳細信息,php打印顯示數組與對象的函數詳解

php打印顯示數組與對象的函數詳解發布于 2014-11-17 18:55:49 | 699 次閱讀 | 評論: 0 | 來源: 網友投遞PHP開源腳本語言PHP(外文名: Hypertext Preprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點&…

ios開發-調用系統自帶手勢

在 iPhone 或 iPad 的開發中,除了用 touchesBegan / touchesMoved / touchesEnded 這組方法來控制使用者的手指觸控外,也可以用 UIGestureRecognizer 的衍生類別來進行判斷。用 UIGestureRecognizer 的好處在于有現成的手勢,開發者不用自己計…

Node.js 事件循環

Node.js 事件循環 Node.js 是單進程單線程應用程序,但是因為 V8 引擎提供的異步執行回調接口,通過這些接口可以處理大量的并發,所以性能非常高。 Node.js 幾乎每一個 API 都是支持回調函數的。 Node.js 基本上所有的事件機制都是用設計模式中…

全國翻譯專業資格(水平)考試

http://www.spta.gov.cn/moreksxx.jsp?lmCodeA02010205轉載于:https://www.cnblogs.com/Danilo/archive/2004/10/31/58821.html

linux文件句柄,【LINUX】使用lsof處理文件恢復、句柄以及空間釋放問題

曾經在生產上遇到過一個df 和 du出現的結果不一致的問題,為了排查到底是哪個進程占用了文件句柄,導致空間未釋放,首先在linux上面,一切皆文件,這個問題可以使用lsof這個BT的命令來處理(這個哈還可以來查詢文件句柄泄露…

android天氣查詢(二)之網絡json數據的獲取

前面一篇文章介紹了如何使用ksoap獲取天氣信息,但是使用的網絡資源受到了限制,所以我們這里會采用第二種方法,可以無限制的獲取。http://m.weather.com.cn/data/101010100.html 但是對應的101010100(北京)我們怎么獲取呢,還有就是…

累.....

今天我真的蔫了,好累,腦子也好濁,但是還好,最終達到了預期的目的。我終于把henry的dataGrid實現了,犯了低級錯誤,和好多人討論,但最終還是henry解決的。那一刻,真的好爽,…

001-pro ant design 升級2.0后變更

一、更新點 1、目錄調整 2、本地代理服務器調整 roadhog→umi 配置方式 在這個config/config.js配置 "proxy": { "/api": { "target": "http://jsonplaceholder.typicode.com/", "changeOrigin": true, "pathRewrite&q…

linux cp 時 略過文件,CentOS下執行cp命令式提示略過文件夾

今天在CentOS下復制一個文件夾到另一個文件夾的時候cp ./res /usr 的時候出現了問題,提示我的是:cp略過了文件夾后來我找了一下在網上search了一下CP命令的用法:CP命令該命令的功能是將給出的文件或目錄拷貝到另一文件或目錄中,同…

屬性頁中的ON_UPDATE_COMMAND_UI

我前面翻譯了一篇文章簡單的談了一下在對話框處理ON_UPDATE_COMMAND_UI 消息。又在www.codeguru.com上看到在屬性頁中處理ON_UPDATE_COMMAND_UI 消息的方法和在對話框中稍有不同。兩者的處理大體上一樣。只是在屬性頁中還需要一個步驟。需要從CPropertySheet派生類,…

linux基礎命令rpm,rpm常用命令集合1

提要:RPM 是 Red Hat Package Manager 的縮寫,原意是Red Hat 軟件包管理;本文介紹RPM,并結合實例來解說RPM手工安裝、查詢等應用;正文:RPM包管理的用途;1、可以安裝、刪除、升級和管理軟件&…

hibernate詳解

Hibernate原理與應用 主要內容 1、引入 2、安裝配置 3、基本概念和CURD 4、HQL和Criteria 5、關聯映射 6、繼承映射 7、集合映射 8、懶加載 9、緩存 10、事務 11、其他 12、Hibernate不適合的場景 13、與JPA的集成(annotation方式) 14、最佳實踐 1、引入 模型不匹配(阻抗不匹配…

Csharp+Asp.net系列教程(四)

邁克老貓 來自:老貓的理想 本教程參考C#和ASP.NET程序設計教程撰寫,有什么不足之處請大家指出,或在老貓的理想BLOG留言。 這次簡述一下操作符 1.算術操作符 算術操作符包括加()、減(-)、乘(*)、除(/)和求余(%)。加減操作符…

linux 腳本 寫更新,用Shell寫的游戲客戶端更新腳本

#!/bin/sh########################################### 客戶端版本更新系統########################################### CLIENT_INIT_VERSION 客戶端新版本,默認是0# CLIENT_OLD_VERSION 客戶端舊版本(存放在VERSION_FILE指定的文件中),當沒有時取CL…

Android Studio 環境搭建參考,jdk10javac命令提示不是內部或外部命令

https://blog.csdn.net/qq_33658730/article/details/78547789 win10下Android Studio和SDK下載、安裝和環境變量配置 http://yanmin99.com/ android-0基礎從入門到精通 環境變量ANDROID_HOMEE:\Program Files (x86)\Android\SdkJAVA_HOMEE:\Program Files\Java\jdk1.8.0_161TO…

報表引擎 - 數據模型

介紹 本文檔是報表模型的數據模型部分,說明平臺報表中涉及的報表數據相關 術語 名稱 說明 數據源 數據源是與數據存儲的連接。支持數據源適配 數據集 定義報表數據來源的一個二維表 參數 報表往往有參數,例如,日報表,當…

linux 刪舊內核,Ubuntu 刪除舊內核的方法

使用Ubuntu時如果系統里安裝了很多內核,會造成多于的啟動列表。想刪掉一些不用的內核方法如下方法一:首先就是使用如下命令,列出所有安裝的內核,下表中,帶有p_w_picpath的就是內核文件。從中選擇要卸載的包&#xff0c…

L2-014 列車調度(隊列模擬:set)

題意: 兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最后從出口離開。在圖中有9趟列車,在入口處按照{…

新架設了一個CVS服務器 --by yp

cvs是個代碼管理的好東東,全稱并發版本控制。不知道的上網查一下資料。 我下載了相關的部分資料和軟件,包括架設服務器的軟件和使用服務的客戶端軟件,都是windows平臺下可用的, 其他平臺下的我都沒下載,因為不會用。在…