用二进制画一条黑线,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. linux 挂载分区inode,Linux中分区挂载和LABEL的指定
  2. Akka源码分析-Remote-发消息
  3. LVS的NAT工作模型详解
  4. MyBatis中的大于、小于、like等符号写法
  5. js/vue 高德地图绘制驾车路线图
  6. 苦练IoT应用开发,还能加速变现,这个机会别错过
  7. Redis持久化_Redis事务_Redis删除策略
  8. js - 让 git 上 Mint-UI 的例子跑起来 - 方法大全
  9. 【图像处理】空间滤波、中值滤波(Spatial Filtering and Median Filtering)
  10. 【安卓深度控件开发(2.2)】LCDView - 进阶绘图
  11. qml修改图片的颜色
  12. 微信小程序------媒体组件(视频,音乐,图片)
  13. 安装完wps去除右键新建中的wps等文档
  14. Boyer-Moore算法
  15. 大地经纬度坐标系与Web墨卡托坐标系的转换
  16. 概率Probability的本质是什么?[附概率基础知识,文末可下载28页PDF]
  17. 百度脑图中如果想输入换行符本身(\n)怎么输入
  18. 【多式联运】基于模拟退火优化遗传算法求解多式联运运输问题(含碳政策)含Matlab代码
  19. [计算机数值分析]直线拟合的最小二乘法
  20. 无需破解,官网安装Visual Studio 2013社区版

热门文章

  1. 主机插上网线,网卡灯死活不亮
  2. iOS(Swift3)中添加通讯录、添加图片到图库、添加视频到图库
  3. canvas小球连线碰撞效果 html+css+js
  4. 【Linux】linux | shell | 获取系统当前时间
  5. 想转行做IT,不知道能不能行?我给你个栗子,但可以不吃
  6. 打开或关闭Mac的隐藏文件的命令
  7. Topic Model 中文文本分类
  8. python写小猪佩奇_这个程序员用 Python 20 秒画完小猪佩奇“社会人”!
  9. Alpha版本测试报告
  10. 淘宝穿衣搭配算法_方案一