點陣圖四位元組對齊問題
每行畫素位元組數計算方法
該演算法為:biWidthBytes = (biWidth * biBitCount + 31) / 32 * 4
biBitCount 為點陣圖位寬,32位BMP,位寬為32、24位BMP位寬為23、256色點陣圖位寬為8、純黑白點陣圖位寬為1、等等。
這是一種對齊演算法,對於BMP等點陣圖來說,要求是4位元組對齊,即每行位元組數必須為4的整數倍。
因為8bit等於1Byte,同時滿足以4位元組為對齊單位向下對齊,所以可以得:
biWidthBytes = (biWidth * biBitCount / 8 + 3) / 4 * 4
對於位寬不足8的點陣圖,有可能是多個畫素才佔用1Byte,所以應該將“/ 8”移出括號,進一步得:
biWidthBytes = (biWidth * biBitCount + 31) / 32 * 4
相關文章
- 位元組對齊
- golang 位元組對齊Golang
- 位元組對齊小談
- C++ 位元組對齊C++
- c++記憶體中位元組對齊問題詳解C++記憶體
- <摘錄>位元組對齊(強制對齊以及自然對齊)
- c/c++ 位元組對齊C++
- 記憶體位元組對齊記憶體
- iOS 記憶體位元組對齊iOS記憶體
- 【C++】C++的位元組對齊C++
- <摘錄>位元組對齊與結構體大小結構體
- C/C++ 結構體位元組對齊詳解C++結構體
- 淺談虛擬函式表與位元組對齊函式
- C語言:記憶體位元組對齊詳解C語言記憶體
- C/C++—— 記憶體位元組對齊規則C++記憶體
- 字串位元組數問題字串
- 位元組陣列流陣列
- linux 改變GCC編譯器的位元組對齊方式LinuxGC編譯
- 【編譯製導指令】#pragma pack - 位元組數基準對齊編譯
- java 位元組陣列取反Java陣列
- 快手遊戲:版圖成形,對標位元組遊戲
- .NET刪除位元組陣列中的0位元組陣列
- C# 位元組陣列位操作C#陣列
- c/c++資料對齊問題C++
- [Android]Layout中ImageView中圖片的對齊顯示問題AndroidView
- Java基本型別佔用的位元組數(char佔用幾個位元組問題)Java型別
- AES位元組陣列加密解密流程陣列加密解密
- 關於位元組陣列QByteArray陣列
- 使用__attribute__處理對齊問題
- 結構體成員對齊的問題結構體
- 解決 requests 庫中的位元組物件問題物件
- 難對齊、難保障、難管理?一文了解位元組跳動如何解決資料SLA治理難題
- Db2 位元組問題&Db2-4229 錯誤問題DB2
- 位元組面試演算法題-0,1揹包問題面試演算法
- 用抓包工具本地檢視位元組序問題!!
- 1分鐘瞭解C語言正確使用位元組對齊及#pragma pack的方法C語言
- 😠 就因為這道題,面位元組差點兒就寄了...
- MySQL點陣圖索引解決使用者畫像問題MySql索引