用二进制画一条黑线,bmp文件的存储原理

1.了解bmp文件的存储原理

bmp详解

1.1 要先了解bmp文件中二进制的数据代表的什么内容,具体看超链接


1.2 注意

最重要的就是要明白
1C-1D:0008h = 8, 表示每个像素占8个比特,即该图像共有256种颜色。
注意文件中看的时候要从高位到低位连起来看
文件中两个字节 01 00 就是代表 0001h
当为0001h,每个像素占1个比特时,调色板合法索引值只有0和1。因此调色板中只有2个色彩值,分别表示索引值为0和1时的色彩信息。
当为0004h,每个像素占4个比特时,调色板合法索引值[0,15]。因此调色板中只有16个色彩值。
当为0008h,每个像素占8个比特时,调色板合法索引值[0,255]。因此调色板中只有256个色彩值。
但图像中不一定使用到了全部颜色。第47-50字节存储的uint型数据指出图像中实际应用的色彩数,也即调色板中的色彩值数目。当然,它不应超出调色板的合法索引值的范围。
当每个像素为1个bit时,一个字节八bit,要看具体的像素大小,来看如何表示像素的大小,最低为四字节,而且必须为4的倍数

画图时最好使用单色,就是一个像素一bit,在调整合适的大小来看二进制数据,不然二进制数据会很多,不方便实验。

2.看过之后,要结合具体实例来动手

2.1 第一步 弄清楚单色的bmp文件,如何用二进制画一条黑线

不难,说白了,你要看过上面链接,不可能不会画出一条黑线
前五十四字节的数据讲的明明白白  不明白 你就是看的少,没动脑子,光动眼睛了
八字节的调色板  00 00 00 00   ff  ff ff 00  黑白    rgb透明度
宽度15*高度5 七十五  一共七十五像素   一像素 一bit位,一字节八bit八像素,最低四字节 32像素
宽度时十五像素 绰绰有余  乘以高度五  一共二十字节
不放图了 ,不会的多动手,谁都可以

2.2 第二部 把单色的文件转换成16色的文件

能把单色的文件转换成十六色的文件,我觉得这个bmp你就明白了
1.每个像素1bit 调整成4bit 代表了十六色
2.十六色的调色板 4*16=64字节  一行16字节   四行
3.调整具体的像素
还是宽度15*高度5 75像素   一像素4bit位  一字节2像素  四字节 8像素
八字节 16像素   16*5  80字节
4.还需要修改文件的大小,和使用的颜色数最后,数据调整好的,检验标准,是文件能否正常的打开

3.最后,都太简单了

没有什么会难住我们的,一切困难都只是暂时的,我希望大家不要被现在面临的一点问题所影响。一个喜爱艺术的人,比如油画,可惜不会
平生无憾事,唯一爱女人。 虽有遗憾,但无后悔。
昨天吃饭,跟一个代课的女性说起什么什么信仰。她说信仰就是懦弱,就是当个老好人。她说信仰钱,真的是,哎。
让我想起路飞,海贼王的一句话,没有什么对与错,我们只是立场不同。
从没有的东西/从没有经历的东西,为什么要去贬低呢。
做个有信仰的人,哪管信什么,只要是正向的。
让我想起我曾经对自己说的话,梦想/快乐就是去成就他人。

bmp文件存储,并用进制画图相关推荐

  1. java读取文件 16进制_Java对文件的16进制读取和操作

    大家可以参考一下源代码的相关部分注释,然后写出自己的16进制处理程序. 有几个重点地方: 16进制字符串->10进制数          int input = Integer.parseInt ...

  2. (二) 数据存储_进制转换_编码_字节

    文章目录 数据如何存储到计算机? 寄存器 高速缓冲存储器(Cache) 内存 硬盘 进制转换 [1] 十进制->二进制 [2] 二进制->十进制 [3] 十进制->八进制 [4] 八 ...

  3. 计算机存储和进制转换

    计算机的存储单位 ​ 计算机只能识别二进制数据,也就是0和1(0和1实际上对应的是高低电平,或者磁极方向等),对应0和1的最小存储单位是bit,bit是数据传输的最小单位.人们又规定特定位数的0和1组 ...

  4. 计算机内存数值存储方式进制

    进制概念 进制也就是进位制,是人们规定的一种进位方法.对于任何一种进制,x进制表示某一位置上的数运算时是逢x进一位.十进制是逢十进一.十六进制是逢十六进一.二进制是逢二进一. 各进制数表示 八进制是逢 ...

  5. 【学习日志】2022.10.16 万用头文件 sstream C++进制转换

    万用头文件  #include<bits/stdc++.h>包含了目前c++所包含的所有头文件!!!! #include <bits/stdc++.h> C++常用输入输出 ( ...

  6. 使用vim打开文件的16进制形式,编辑和全文替换

    1.先用vim打开文件的二进制形式,如果不以二进制可能会产生转换错误. vim -b file-to-open.dat 2.用xxd把文件转换成十六进制格式 :%!xxd 现在就可以对待普通文本一样查 ...

  7. 将图像转换为16进制文件

    在做图像处理时,有时需要将一张已有的图像写入到程序中.这时linux命令xxd可以完成这个需求. 注: win10可使用ubuntu子系统来使用linux命令,非常方便 xxd -i logo.bmp ...

  8. 图解Winhex解析BMP文件数据实例

    一 实例解析 示例图片的属性: 原图: 红线处是文件头结束: 第二个红线处是位图信息头结束: 用windows画图取第(2,2)像素点的颜色:画图是从0开始计数,即第3行3列的像素: 搜索16进制的B ...

  9. 数据恢复必备宝典—BMP文件详解

    BMP是一种与硬件设备无关的图像文件格式,使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BblP文件所占用的空间很大.BMP文件的图像深度可选lbit.4bit.8 ...

最新文章

  1. ThinkPad紧凑型蓝牙键盘(0B47189)鼠标滚轮用法,F1到F12功能键的功能切换以及其他技巧
  2. python链接mysql报错2003_Python连接Mysql报错问题解决
  3. ASP.NET MVC的路由
  4. 如何提高go代码覆盖率_如何通过静态分析提高iOS代码质量
  5. ArrayList的容量与长度
  6. SpringCloud微服务云架构构建B2B2C电子商务平台之-服务的注册与发现Eureka
  7. 计算机4000字论文格式,科学论文格式要求4000字
  8. 【Saba MMD Win10x64编译】
  9. matlab线性拟合
  10. Nginx禁止使用IP访问
  11. 信息编码 — 进大厂必备底层能力之一(文末有彩蛋)
  12. 计算机功能清单,如何使用印象笔记的清单功能?清单快速上手教程
  13. 心跳异常检测--使用Keras,K折交叉训练CNN一维卷积
  14. 电子行业求职,技术才是硬道理
  15. 中图分类号和UDC查询
  16. 字符串处理 2015百度之星资格赛 1002 列变位法解密
  17. 爬虫煎蛋网的mm图片
  18. php微信 开发笔记,微信WebApp开发总结笔记
  19. 知到网课个人理财(西安欧亚学院)考试试题(含答案)
  20. FCOS网络总体流程

热门文章

  1. 月光宝盒源码、FBA、mame、psp
  2. 万万没想到系列,世界上最知名的失败建筑设计合集!
  3. Osu-ICG-Sulfo|吲哚菁绿-磺酸-Osu|花青素标记
  4. 腾讯SOSO发工资了,每天签到领金币兑实物奖品
  5. InnoDB如何解决幻读
  6. ❤ 报`Uncaught (in promise)`错误解决办法
  7. 杰理之通话时,将主耳放入充电仓,声音不切换到副耳,直接切回到手机端【篇】
  8. HBuilder——运行到手机模拟器未检测到手机或模拟器
  9. ISO 14.3苹果手机升级耗电极快的解决办法
  10. 2023计算机考研择校分析【23考研必读】