初识数据编码,从 0 开始的进阶之路 ! ~ 内附:植物大战僵尸修改游戏存档、金币 演示~

本文介绍如何使用0和1绘制图像,并通过进制编辑器修改文本和图片的内容。学习者将在code.org上实践计算机像素的概念,理解二进制如何存储图像,并通过进制编辑器直接修改十六进制数据编码实现对txt文本和png图片的编辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习目标:

任务一:
在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 52ASCII码为 IHDR 数据块标识
00 00 00 08
00 00 00 08图片的高,8像素
08 06 00 00 00位深度、颜色类型、压缩方法、过滤方法、交错方法
C4 0F BE 8Bpng格式的CRC校验码
00 00 00 18此处开始为 IDAT 数据块,长度为24字节
49 44 41 54ASCII码为 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 66CRC校验码
00 00 00 00此处开始为 IEND 数据块,长度为0
49 45 4E 44ASCII码为 IEND 数据块标识
AE 42 60 82CRC校验码

拓展练习:

修改游戏存档
  • 植物大战僵尸
    在这里插入图片描述

     游戏存档路径:C:\ProgramData\PopCapGames\PlantsVsZombies\userdata
    
  • 存档文件
    用户名存储文件:users.dat
    用户数据存档文件:user1.dat, user2.dat
    说明:user1.dat存储第一个用户的游戏存档,user2.dat第二个用户的游戏存档。
    在这里插入图片描述在这里插入图片描述

  • 存档文件user*.dat:
    在这里插入图片描述

  1. 游戏关卡存档位置:进制编辑器打开文件,第5个字节;

    说明:本游戏关卡类型为一个大关卡包含若干小关卡。游戏存储并未细分大关卡还是小关卡,存储的是数值为小关卡总量,1个小关卡代表1。只需修改第5个字节。例如:关卡5-1为29(十六进制)

  2. 游戏金币存档位置:9-12个字节,第9个字节是低位,第12个字节是高位;
    在这里插入图片描述

  3. 游戏模式解锁:第13个字节,改为1解锁所有游戏模式。

修改后效果:

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

清汉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值