C_and_CPP 板


LINE

以下是我十几年前当助教时的作业说明投影片内容, 用copy的,不多做解释。 要用0/1表示0/255,要从biBitcount下手。 BMP Header: (1) Bmp file header (totally 14 bytes) 1a) Byte 0~1: bfType: always ‘B’,‘M’ 1b) Byte 2~5: bfSize: bmp image file size 38_04_04_00=>4*256*256+4*256+56=263244 1c) Byte 6~7 & Byte 8~9: bfReserved1, bfReserved2: reserved bytes, always 0 1d) Byte 10~13: bfOffBits: offset to the location of raw data, or length of total header size (file header + image header + palette) 36_04_00_00=>4*256+54=1078 (2) Bmp image header (totally 40 bytes) 2a) Byte 14~17 : biSize: always 28 (hex),or 40 in decimal. 2b) Byte 18~21&22~25 : biWidth & biHeight (in pixels) 2c) Byte 26~27 : biPlane 2d) Byte 28~29 : biBitcount : color depth, 8 for 256-color; 18(hex, or 24 in decimal) for 24-bit color 2e) Byte 30~33 : biCompression 2f) Byte 34~37 : biSizeImage 2g) Byte 38~41&42~45: biXPelPerMeter, biYPelPerMeter 2h) Byte 46~49&51~53 : biClrUsed, biClrImportant (3) Bmp palette: optional, usually used in gray-level images. ex: [RR GG BB 00]*256 = 1024 Bytes ※ 引述《IOP14759 (iop14759)》之铭言: : 开发平台(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时的像素矩阵要怎 : 麽去分析 : 是否有相关关键字或书籍名称可以分享给我,谢谢 --
QR Code



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.228.64.192 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1694653923.A.F7B.html ※ 编辑: YoursEver (125.228.64.192 台湾), 09/14/2023 09:13:38







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP