任务01-信息编码:纯⽩⾊的bmp图⽚ 用Hex Editor Neo画一个“C
拓展任务
先通过搜索引擎了解bmp⽂件数据格式的特征
再⽤截图⼯具截⼀幅8×8⼤⼩纯⽩⾊的bmp图⽚
然后⽤⼆进制编辑器观察bmp图⽚⽂件数据的规律
重复上述步骤,摸清规律后,在⽩底上⽤⿊⾊线条「画」出字⺟「C」
使用QQ截图工具,截取一张8x8的bmp格式图片,
用Hex Editor Neo打开 "8x8纯白.bmp",可以看到这个文件的全部数据如下图所示:
1.位图文件头(BITMAPFILEHEADER)
位图文件头分4部分,共14字节:
名称 |
占用空间 |
内容 |
实际数据 |
bfType |
2字节 |
标识,就是“BM”二字 |
BM |
bfSize |
4字节 |
整个BMP文件的大小 |
0x00000136(310)【与右键查看图片属性里面的大小值一样】 |
bfReserved1/2 |
4字节 |
保留字,没用 |
0 |
bfOffBits |
4字节 |
偏移数,即 位图文件头+位图信息头+调色板 的大小 |
0x36(54) |
注意,Windows的数据是倒着念的,这是PC电脑的特色。如果一段数据为50 1A 25 3C,倒着念就是3C 25 1A50,即0x3C251A50。因此,如果bfSize的数据为36 01 00 00,实际上就成了0x00000136,也就是0xC00136。
2.位图信息头(BITMAPINFOHEADER )
位图信息头共40字节:
名称 |
占用空间 |
内容 |
实际数据 |
biSize |
4字节 |
位图信息头的大小,为40 |
0x28(40) |
biWidth |
4字节 |
位图的宽度,单位是像素 |
0x200(512) |
biHeight |
4字节 |
位图的高度,单位是像素 |
0x200(512) |
biPlanes |
2字节 |
固定值1 |
1 |
biBitCount |
2字节 |
每个像素的位数 1-黑白图,4-16色,8-256色,24-真彩色 |
0x18(24) |
biCompression |
4字节 |
压缩方式,BI_RGB(0)为不压缩 |
0 |
biSizeImage |
4字节 |
位图全部像素占用的字节数,BI_RGB时可设为0 |
0x0C |
biXPelsPerMeter |
4字节 |
水平分辨率(像素/米) |
0 |
biYPelsPerMeter |
4字节 |
垂直分辨率(像素/米) |
0 |
biClrUsed |
4字节 |
位图使用的颜色数 如果为0,则颜色数为2的biBitCount次方 |
0 |
biClrImportant |
4字节 |
重要的颜色数,0代表所有颜色都重要 |
0 |
作为真彩色位图,我们主要关心的是biWidth和biHeight这两个数值,两个数值告诉我们图像的尺寸。biSize,biPlanes,biBitCount这几个数值是固定的。想偷懒的话,其它的数值可以一律用0来填充。
调色板地址图像的调色板地址从00000036h开始存储
图像的颜色地址从00000036h开始到00000135h结束
photoshop中调色板显示为:ff 00 00(分别表示 红 绿 蓝),Hex Editor Neo 中 00 00 ff 00 表示红色,前三位分别表示 蓝 绿 红,第四位没有影响颜色。
photoshop中调色板显示为:00 00 ff(分别表示 红 绿 蓝),Hex Editor Neo 中 ff 00 00 00 表示蓝色。证明两者刚好是倒过来的。
如下图所示,
我用框的颜色 代表 三个字节所代表的颜色
用绿色画一个C字
将16进制全部复制到文本编辑器里面,按8x8像素排列好,更方便修改。
根据前面的试验结果,ff ff ff ff 修改为00 ff 00 ff就可以变为绿色。最后按照c的样式进行排列。
from:https://blog.csdn.net/aidem_brown/article/details/80500637
⾃测
89 50 4e 47
答:
4e2d分别是 0100 1110 0010 1101
依次填入1110xxxx 10xxxxxx 10xxxxxx(假设是从左到右0-7位)(假设是从左到右 1-3字节)
第一个字节4-7位:0100第二个字节的2-5位:1110第二个字节6-7位和第三个字节2-3位 :0010第三个字节4-7位:1101插入后得到 11100100 10111000 10101101
转换为16进制为:edbaa4
form:https://blog.csdn.net/wangwenan1993/article/details/45559369
uCA C3 8A, 过程如下:
uCA(1100 1010)处于0080 ~07FF之间,从上文中的转换表可知对其编码需要2bytes,即两个字节,其对应 UTF-8格式为: 110X XXXX 10XX XXXX。从此格式中可以看到,对其编码还需要11位,而uCA(1100 1010)仅有8位,这时需要在其二进制数前补0凑成11位: 000 1100 1010, 依次填入110X XXXX 10XX XXXX的空位中, 即得 1100 0011 1000 1010(C38A)。
同理,UNICODE uF03F (1111 0000 0011 1111) 编码成UTF-8将需要3个字节:
u F03FEF 80 BF,对应格式为:1110XXXX 10XX XXXX 10XX XXXX,编码还需要16位,将1111 0000 0011 1111(F03F)依次填入,可得 1110 1111 1000 0000 1011 1111(EF 80 BF)。
UTF8文件协议里有更详细说明
答:ffmpeg和ffserver配合使用可以实现实时的流媒体服务。
任务01-信息编码:纯⽩⾊的bmp图⽚ 用Hex Editor Neo画一个“C相关推荐
- 为什么python画不了图-python-为什么pygame不画一个圆?
我对pygame几乎一无所知,所以我无能为力了--但是我认为您在做的事总是使自己陷入困境.试试看: pygame.init() screen = pygame.display.set_mode((64 ...
- 修改开机LOGO图片教程及注意事项/通过C++实现bmp图位深度从32位转换为8位
修改开机LOGO图片教程及注意事项/通过C++实现bmp图位深度从32位转换为8位 文章目录 修改开机LOGO图片教程及注意事项/通过C++实现bmp图位深度从32位转换为8位 修改开机LOGO图片教 ...
- 【音视频数据数据处理 7】【RGB/BMP篇】生成24色 RGB24图 和 BMP图
[音视频数据数据处理 7][RGB篇]生成一张24色 RGB24图 和 BMP图 一.生成24色 RGB24图代码实现 二.生成24色 BMP图代码实现 先上24色图,及其对应的RGB值. 本文地址: ...
- Css 如何使纯颜色/背景图自适应的铺满全屏
摘要 他喵的我觉得一般就是三种需求: 1.纯颜色 解释:即只有background-color,没有图 需求:应至少充满一个视窗,如果内容超出一个视窗,自适应填充.比如知乎首页. 2.背景图 需求很动 ...
- linux bmp图片应用编程,在Framebuffer下编程显示BMP图象 分享
http://yaos.blog.sohu.com/20240931.html 今天看别人的代码,知道可以使控制台进入图形模式,这样SHELL程序的显示就不会影响BMP图像的显示了.于是,COPY过来 ...
- 使用PS在32位的BMP图上增加ALPHA通道,使得解码BMP时出现透明效果
如果图片是16位或者是24位先使用PS存储为32位的BMP图片,然后将使用ps的魔棒工具点中整个BMP图,按键盘上的DELETE键会弹出一个填充的对话框,在"使用"旁边的下拉列表中 ...
- 消防管件做的机器人图片_报废消防器材变身“机器人” 由消防官兵纯手工打造(图)...
原标题:报废消防器材变身"机器人" 由消防官兵纯手工打造(图) 由报废的消防零配件组成的机器人模型. 厦门网讯 (厦门日报记者林路然通讯员阙凤芳曾德猛)远看好似变形金刚,凑近还会说 ...
- 使用Highcharts来画一个简易的甘特图
前端组件 – 甘特图 由于在项目中需要画一个基于时间的对比甘特图,但缺乏前端知识,便在网上寻找相关插件或者已有代码. 文章目录 前端组件 -- 甘特图 前言 一.Highcharts? 二.使用 1. ...
- python画折线图详解-python如何画折线图
python画折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*- import numpy as ...
最新文章
- 计算机和网络知识,计算机和网络技术基础知识
- python实现md5加密_Python实现md5加密验证访问接口总结
- 概述SharePoint 2007
- Linux的简单介绍.
- cocos2d-x游戏实例(11)-触屏主角移动轨迹
- yum安装mysql5.6
- JavaScript(八)—— PC 端网页特效
- UML之一综合设计例题
- python Tricks —— list 镜像复制、list of lists 的 flat
- whose view is not in the window hierarchy
- 防火墙转发流量的原理
- [转载] 计算机端口详解
- gRPC Mock Server
- ELEMENT UI中关于上传图片el-upload控件删除(同时删除后台图片信息)
- html怎样调节字间距,css怎么调整字间距?
- 26个音序的正确写法和占格_26个音序表怎么读(拼音音序表的正确写法)
- java技术面试总结评语,成长路线图
- 旅游攻略小程序毕业设计毕设作品开题报告答辩PPT
- Ubuntu16.04系统安装搜狗输入法教程
- 2021年高新技术企业认定时间及条件出来了,全国28省
热门文章
- Python爬虫:给我一个链接,虎牙视频随便下载
- thinkPHP6报错:Failed to listen on 0.0.0.0:8000 (reason: һַȨ“
- 一般看不见的机械原理
- JetBrains提示“No suitable licenses associated with account ”
- 计算机硬盘硬盘共享如何设置,两台电脑如何共享文件夹?Win10设置共享文件夹或共享磁盘的方法...
- python音频 降噪_python降噪_python音频降噪_python图片降噪 - 云+社区 - 腾讯云
- excel 文件加密
- 解决springboot无法访问此网站,localhost 拒绝了我们的连接请求的问题。
- 自己总结的linux命令
- 目标检测 YOLOv5 - 模型的样子