[問題] BMP資料結構請教

看板C_and_CPP (C/C++)作者 (iop14759)時間1年前 (2023/08/21 15:15), 1年前編輯推噓3(3013)
留言16則, 8人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: Win10, Linux, ...) WIN7 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Graphics.hpp 問題(Question): 該如何分析1像素1bit的bmp檔 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) TColor pixelColor = bmp->Canvas->Pixels[x][y]; //抓取像素點[寬][高]的RGB值 r = GetRValue(pixelColor); g = GetGValue(pixelColor); b = GetBValue(pixelColor); 補充說明(Supplement): 我用小畫家畫一張簡單的圖,畫布大小是50*60像素 上半部是R=255/G=0/B=0的純紅,下半部是B=255/G=0/R=0的純藍 這時候去讀BMP的結構,OK跟網路上說的一樣我都能看得懂,1CH-1DH=24(1像素24位元), 然後從36H開始分析像素矩陣的RGB都符合原圖 在C++Builber中使用#include <Graphics.hpp>中的GetRValue,GetGValue,GetBValueu也 都正確抓出R/B=255的值 然後使用線上繪圖(photopea)把亮度修改到10%,再去讀BMP的資料,我發現1CH-1DH=1(1 像素1位元),整個像素矩陣我都看不懂了,我上網查是說1bit的圖檔應該是只有黑跟白 https://upload.cc/i1/2023/08/21/ifxceV.png
但是我用GetRValue,GetGValue,GetBValueu指令去抓,反而能抓到紅色和藍色=0x19的值 ,轉DEC是25剛好符合255的10% 既然用指令可以抓表示這結構一定是對的,那麼想請問在1像素佔1bit時的像素矩陣要怎 麼去分析 是否有相關關鍵字或書籍名稱可以分享給我,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.158.217 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1692602138.A.DF8.html

08/21 16:12, 1年前 , 1F
學了兩年都還停在BMP檔嗎?
08/21 16:12, 1F
之前只是稍微看一下知道個大概而以,現在才開始動手 ※ 編輯: IOP14759 (60.248.158.217 臺灣), 08/21/2023 16:14:50

08/21 16:34, 1年前 , 2F
1bit的黑白bmp,好像自由定義,有的程式1=黑,有的1=白
08/21 16:34, 2F

08/21 16:35, 1年前 , 3F
就把110001110110..寫出來,然後8個bit變byte就可以了
08/21 16:35, 3F

08/21 17:37, 1年前 , 4F
根據 0AH-0BH 和 0EH-0FH, 可知 36H-3DH 有 color table.
08/21 17:37, 4F

08/21 20:24, 1年前 , 5F
google: bmp color table => 有些reader忽略color table...
08/21 20:24, 5F

08/21 20:27, 1年前 , 6F
直接假設0為黑1為白.
08/21 20:27, 6F

08/26 09:43, , 7F
1樓的人生經歷了什麼創傷?
08/26 09:43, 7F

08/26 10:55, , 8F
我沒興趣耶 但就看BMP文件?
08/26 10:55, 8F

08/26 10:56, , 9F
真的要補知識就 計概 C語言二進位讀檔 影像處理
08/26 10:56, 9F

08/26 10:57, , 10F
還有修資料壓縮課(誤
08/26 10:57, 10F

08/26 11:21, , 11F
因為我看他前年就在問BMP檔案格式..
08/26 11:21, 11F

08/26 15:21, , 12F
反正符合板規,就算跟兩年前一樣問bmp,也只能給過
08/26 15:21, 12F

08/27 14:18, , 13F
0x36-0x3d是條色盤,0x3e開始才是資料
08/27 14:18, 13F

08/28 09:18, , 14F
他就明顯卡住想不通 七樓還回答RTFM有什麼意義嗎
08/28 09:18, 14F

08/28 09:18, , 15F
是誰人生創傷阿顆
08/28 09:18, 15F

08/28 21:35, , 16F
沒人質疑那個線上軟體為什麼要亂改格式嗎??
08/28 21:35, 16F
文章代碼(AID): #1aumyQtu (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1aumyQtu (C_and_CPP)