C1能力认证任务01-信息编码

C1认证任务01
C1能力认证网上的攻略和教程已经很多了,我也是看着教程一步一步完成任务的,值得一提的是看似简单的任务和看似一看就会的教程,做起来也是遇到坑了,所以专门来写个爬坑历险记,来记录完成任务的过程。
首先描述任务详情如下:一共两个任务,任务一简称《植物大战僵尸》、任务二简称《01画画》,随后是拓展任务和自测任务。请先熟悉任务之后,再开始任务,不然会出现莫名其妙的小问题。
任务一:
概述:
1.首先,修改《植物大战僵尸》的存档文件,能跳到指定关卡,例如5-1。
2.其次,修改《植物大战僵尸》的存档文件,让游戏账户有指定数量的金币。
3.然后,修改《植物大战僵尸》的存档文件,能解锁“迷你游戏”选项。
4.最后,修改《植物大战僵尸》的存档文件,能解锁“生存模式”选项。
完成以上任务之前,可先在学习小组内讨论:修改存档文件之前,需要面对并解决哪些问题?
问题1:《植物大战僵尸》下载哪个版本?
问题2:植物大战僵尸的存档文件是什么?
问题3:用什么方式方法修改存档文件?
问题4:完成以上任务,需要注意的细节是什么?

任务二:
概述:
1.在code.org上注册账号,完成与计算机像素相关的系列任务(https://studio.code.org/s/pixelation)
2.注册账号时需要注意如下两点:
账号角色选择学生;
选择最大年龄21+(有些任务会以年龄太小为由被拒绝执行)
3.先通过二进制的0和1“画”出图形。
4.再试着“画”出自己的名字或昵称。
5.理解二进制存储图片文件的底层原理。

拓展任务
1.先通过搜索引擎了解bmp或png文件数据格式的特征
2.再用截图工具截一幅8*8大小纯白色的bmp/png图片
3.然后用二进制编辑器观察bmp或png图片文件数据的规律
4.重复上述步骤,摸清规律后,在白底上用黑色线条“画”出字母“C”

自测:
1.110101010001转十六进制是多少?有什么最快的计算方法能得到结果?
2.101011.101011对应的十进制数是多少?
3.常见的音频编码格式有哪些?
4.常见的视频编码格式有哪些?
5.一个尺寸8*8大小的png全黑图片前四个字节的十六进制值是什么?
6.UTF8三字节的编码方式为:1110xxxx 10xxxxxx 10xxxxxx,汉子“中”的Unicode编码十六进制值0x4e2d,Unicode编码按三字节编码转换到十六进制的UTF8编码的计算过程是什么?
7.如果要提供一个实时的流媒体服务器,除了ffmpeg,还需要使用哪个组件?


分割线开始任务

步骤1:下载植物大战僵尸和进制编辑器
下载链接众多,我找到了植物大战僵尸的安装版和绿色版,后来发现安装版的修改user1.dat无效,所以第一个坑:建议使用绿色版。进制编辑器,我找到了2015版和2017版,安装简单都挺好用。
步骤2:找到存档的存储目录
也是第二个坑:不论你的安装目录是哪里,修改user1.dat的目录都在C:\ProgramData\PopCap Games\PlantsVsZombies\userdata这个路径下。ProgramData是系统默认的隐藏文件,所以请先勾选“隐藏的项目”。
在这里插入图片描述
步骤3:开始完成任务
1.首先,修改《植物大战僵尸》的存档文件,能跳到指定关卡,例如5-1。
亲测修改第一行04列为2a就是5-1关卡。2a是十六进制,转换为10进制是16的0次方乘以a(10),16的1次方乘以2,所以是16*2+10=42。
在这里插入图片描述
2.其次,修改《植物大战僵尸》的存档文件,让游戏账户有指定数量的金币。
修改金币数量为52013140,首先转换为16进制,52013140的16进制为4f5da2,对应08列09列0a列0b列,其中08列是12位,09列是34位,0a列是56位,0b列是78位,所以将a25d4f按顺序填入08-0b列,出来就是52013140,因为是十六进制,所以不能用个位十位百位来对应,用12位34位描述。
在这里插入图片描述
3.然后,修改《植物大战僵尸》的存档文件,能解锁“迷你游戏”选项。
4.最后,修改《植物大战僵尸》的存档文件,能解锁“生存模式”选项。
第三个坑:这两个任务修改同一处,第一行的0c列,修改为01,意思是解锁全部。
在这里插入图片描述
不要看着第一行第一列修改本来就有的0c数值,你修改它只会程序报错。
程序报错:会显示Invalid file version
在这里插入图片描述
第四个坑:修改为二进制数据,一定要保存并且关闭进制编辑器,不然程序也会报错。另外,如果修改数据,数值不对或者修改的列数不对,都会出现此类程序报错。
程序报错:会显示Failed to user wirte file
在这里插入图片描述
到此为止,任务已经完成,小组内讨论的问题也都迎刃而解。

任务二
3.先通过二进制的0和1“画”出图形。
4.再试着“画”出自己的名字或昵称。
在这里插入图片描述

理解⼆进制存储图⽚⽂件的底层原理:
通过下图的code.org可以知道二进制存储图片有3个要素组成,分别是图片宽度、图片高度、颜色位数。
在这里插入图片描述

拓展任务
1.先通过搜索引擎了解bmp或png文件数据格式的特征
BMP是英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持。随着Windows操作系统的流行与丰富的Windows应用程序的开发,BMP位图格式理所当然地被广泛应用。这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点–占用磁盘空间过大。下面案例以8*8像素的白板文件为案例。

Ⅰ.bmp文件的结构
(1)文件头(bmp file header): 提供文件的格式、大小等信息;
(2)信息头(bitmap information):提供图像数据的尺寸、位平面数、压缩方式、颜色索引等信息;
(3)调色板(color palette):可选,如使用索引来表示图像,调色板就是索引与其对应的颜色的映射表;
(4)位图数据(bitmap data):图像数据区。
在这里插入图片描述

Ⅱ.bmp文件头
bmp文件的结构体定义如下:

typedef struct tagBITMAPFILEHEADER
{ 
UINT16 bfType;        //2Bytes,必须为"BM",即0x424D 才是Windows位图文件
DWORD bfSize;         //4Bytes,整个BMP文件的大小
UINT16 bfReserved1;  //2Bytes,保留,为0
UINT16 bfReserved2;  //2Bytes,保留,为0
DWORD bfOffBits;     //4Bytes,文件起始位置到图像像素数据的字节偏移量
} BITMAPFILEHEADER;

在这里插入图片描述
Ⅲ.bmp信息头

BMP信息头结构体定义如下:
typedef struct _tagBMP_INFOHEADER
{
DWORD  biSize;    //4Bytes,INFOHEADER结构体大小,存在其他版本I NFOHEADER,用作区分
LONG   biWidth;    //4Bytes,图像宽度(以像素为单位)
LONG   biHeight;    //4Bytes,图像高度,+:图像存储顺序为Bottom2Top,-:Top2Bottom
WORD   biPlanes;    //2Bytes,图像数据平面,BMP存储RGB数据,因此总为1
WORD   biBitCount;         //2Bytes,图像像素位数
DWORD  biCompression;     //4Bytes,0:不压缩,1:RLE8,2:RLE4
DWORD  biSizeImage;       //4Bytes,4字节对齐的图像数据大小
LONG   biXPelsPerMeter;   //4 Bytes,用象素/米表示的水平分辨率
LONG   biYPelsPerMeter;   //4 Bytes,用象素/米表示的垂直分辨率
DWORD  biClrUsed;          //4 Bytes,实际使用的调色板索引数,0:使用所有的调色板索引
DWORD biClrImportant;     //4 Bytes,重要的调色板索引数,0:所有的调色板索引都重要
}BMP_INFOHEADER;

Ⅳ.调色板

bmp调色板结构体定义如下:

typedef struct _tagRGBQUAD
{
BYTE  rgbBlue;       //指定蓝色强度
BYTE  rgbGreen;      //指定绿色强度
BYTE  rgbRed;        //指定红色强度
 BYTE  rgbReserved;  //保留,设置为0
} RGBQUAD;

Ⅴ.位图数据
如果图像是单色、16色和256色,则紧跟着调色板的是位图数据,位图数据是指向调色板的索引序号。
如果位图是16位、24位和32位色,则图像文件中不保留调色板,即不存在调色板,图像的颜色直接在位图数据中给出。
16位图像使用2字节保存颜色值,常见有两种格式:5位红5位绿5位蓝和5位红6位绿5位蓝,即555格式和565格式。555格式只使用了15 位,最后一位保留,设为0。
24位图像使用3字节保存颜色值,每一个字节代表一种颜色,按红、绿、蓝排列。
32位图像使用4字节保存颜色值,每一个字节代表一种颜色,除了原来的红、绿、蓝,还有Alpha通道,即透明色。

(二)PNG格式
PNG(Portable Network Graphics)是一种新兴的网络图像格式。PNG一开始便结合GIF及JPG两家之长,打算一举取代这两种格式。1996年得到国际网络联盟推荐认可标准,并且大部分绘图软件和浏览器开始支持PNG图像浏览,从此PNG图像格式生机焕发。

PNG是目前保证最不失真的格式,它汲取了GIF和JPG二者的优点,存贮形式丰富,兼有GIF和JPG的色彩模式;它的另一个特点能把图像文件压缩到极限以利于网络传输,但又能保留所有与图像品质有关的信息,因为PNG是采用无损压缩方式来减少文件的大小,这一点与牺牲图像品质以换取高压缩率的JPG有所不同;它的第三个特点是显示速度很快,只需下载1/64的图像信息就可以显示出低分辨率的预览图像;第四,PNG同样支持透明图像的制作,透明图像在制作网页图像的时候很有用,我们可以把图象背景设为透明,用网页本身的颜色信息来代替设为透明的色彩,这样可让图像和网页背景很和谐地融合在一起。PNG的缺点是不支持动画应用效果。

Ⅰ.PNG文件结构

PNG文件由文件署名域(8字节)和最少3个数据块(Chunk)按照特定的顺序排列而成。 数据块分为两类:

关键数据块(Critical Chunk):必须包含的数据块。
辅助数据块(Ancillary Chunk):可选的数据块。
Ⅱ.PNG文件署名域
在这里插入图片描述
Ⅲ.数据块结构
在这里插入图片描述

2.再用截图工具截一幅8*8大小纯白色的bmp/png图片

用微信截图截取一部分纯白画面然后保存,用系统自带的画图软件打开,“重新调整大小”功能,修改像素8*8。如图所示。
在这里插入图片描述
3.然后用二进制编辑器观察bmp或png图片文件数据的规律
bmp文件的二进制数据:
在这里插入图片描述
png文件的二进制数据:
在这里插入图片描述
4.重复上述步骤,摸清规律后,在白底上用黑色线条“画”出字母“C”
并没有摸清规律,也没有找到其他大神摸出的规律。

自测:
1.110101010001转十六进制是多少?有什么最快的计算方法能得到结果?
四个为一组,不够四个为一组,在最左侧补0,从左往右,分别乘以2的3次方、2的2次方、2的1次方、2的0次方。
1101 18+14+02+11=13=D
0101 08+14+02+11=5
0001 08+04+02+11=1
所以是D51

2.101011.101011对应的十进制数是多少?
整数位:从右往左,分别乘以2的0次方、2的1次方、2的2次方、2的3次方、依次类推。
101011 11+12+04+18+016+132=43
小数位:从左往右,分别乘以2的-1次方、2的-2次方、2的-3次方、2的-4次方、依次类推。
101011 1*-2+0*-4+1*-8+0*-16+1*-32+1*-64= 0.671875
所以是43.671875

3.常见的音频编码格式有哪些?
MP3,ogg,wav、AAC、WMA、WAV、ATRAC、PLAC、APE

4.常见的视频编码格式有哪些?
H264 , VP8, AVS, RMVB,WMV,QuickTime(mov)、MP4

5.一个尺寸8*8大小的png全黑图片前四个字节的十六进制值是什么?
89 50 4E 47 0d 0a 1a 0a
在这里插入图片描述
6.UTF8三字节的编码方式为:1110xxxx 10xxxxxx 10xxxxxx,汉子“中”的Unicode编码十六进制值0x4e2d,Unicode编码按三字节编码转换到十六进制的UTF8编码的计算过程是什么?
在Unicode中汉字“中”的编码为“0x4e2d”,把它转换为二进制为100 1110 0010 1101然后转换成UTF8

7.如果要提供一个实时的流媒体服务器,除了ffmpeg,还需要使用哪个组件?
ffmpeg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Friedy星期五

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值