学习目标:
任务一:
在code.org完成计算机像素相关内容练习,理解计算机二进制存储图片的底层原理。
任务二:
掌握使用进制编辑器。
学习内容:
任务一(用 0 和 1绘图):
1. 使用使用0和1绘制图案,首先确定画布大小二进制0001 1001转换为十进制为25(下图采用的是25 *
25像素,每个格子代表一个像素)。1代表黑色,0代表白色,顺序输入将0,1代表的颜色填充到每个像素格子内便绘制好了图案。
2. 当然我们也可以不局限于黑白两色来作为像素填充,那样实在太过单调像极了早期的黑白电视。再这里调整像素位,可以达到丰富颜色的效果。像素位数越多所得到的颜色越丰富细腻,要想得到五彩斑斓的颜色必须将像素位数设置为3的倍数,因为我们这里的色彩都是基于三原色红黄蓝调配出来的。偶数倍的像素位只能得到黑白两色及黑到白之间的过渡色。
3. 计算机中存储图片的原理就像上文演示的一样,将画布的大小尺寸、颜色信息等(当然图片中肯定不止这些信息)通过相关编码转换为二进制存储到内存中。
任务二(掌握进制编辑器):
1. 使用进制编辑器修改 txt 格式文本,进制编辑器显示的为十六进制编码,采用ASCII码标准显示对应文本。可在进制编辑器中直接修改文字对应十六进制数据编码来修改文字。
2. 修改图片内容:
png格式图片进制编辑器打开后编码结构分为文件署名和数据块。
文件署名用来标识此文件是什么类型。
数据块有多个其中IHDR、IDAT、IEND必不可少,各数据块包含不同的功能,组合起来才能有一张完整的图片。
89 50 4E 47 0D 0A 1A 0A | 文件署名标识 50 4E 47 为ASCII码 PNG |
00 00 00 0D | 此处开始为 IHDR 数据块,长度为13个字节 |
49 48 44 52 | ASCII码为 IHDR 数据块标识 |
00 00 00 08 | |
00 00 00 08 | 图片的高,8像素 |
08 06 00 00 00 | 位深度、颜色类型、压缩方法、过滤方法、交错方法 |
C4 0F BE 8B | png格式的CRC校验码 |
00 00 00 18 | 此处开始为 IDAT 数据块,长度为24字节 |
49 44 41 54 | ASCII码为 IDAT 数据块标识,存储图像的实际内容 |
18 95 63 14 15 61 FB CF 80 07 30 E1 93 1C 26 0A 18 18 18 00 3C 7C 01 3E | 图像内容 24字节 |
97 71 64 66 | CRC校验码 |
00 00 00 00 | 此处开始为 IEND 数据块,长度为0 |
49 45 4E 44 | ASCII码为 IEND 数据块标识 |
AE 42 60 82 | CRC校验码 |
拓展练习:
修改游戏存档
-
植物大战僵尸
游戏存档路径:C:\ProgramData\PopCapGames\PlantsVsZombies\userdata
-
存档文件:
用户名存储文件:users.dat
用户数据存档文件:user1.dat, user2.dat
说明:user1.dat存储第一个用户的游戏存档,user2.dat第二个用户的游戏存档。
-
存档文件user*.dat:
-
游戏关卡存档位置:进制编辑器打开文件,第5个字节;
说明:本游戏关卡类型为一个大关卡包含若干小关卡。游戏存储并未细分大关卡还是小关卡,存储的是数值为小关卡总量,1个小关卡代表1。只需修改第5个字节。例如:关卡5-1为29(十六进制)
-
游戏金币存档位置:9-12个字节,第9个字节是低位,第12个字节是高位;
-
游戏模式解锁:第13个字节,改为1解锁所有游戏模式。