白白学习笔记 - wechat_jump_game - 微信小游戏跳一跳学习笔记

1. github原项目地址

项目地址

2. study step by step

2.1 学习思路


  1. 调试工具与方法
  2. 截图,获取像素
  3. 如何对像素进行判断,并获取想要的位置
  4. 其他的逻辑部分

2.2 调试工具 —— adb


adb简介
  1. adb - Android Debug Bridge - 安卓调试桥
  2. 官方使用文档地址
  3. 功能简介:是一个通用命令行工具,允许与模拟器实例或连接的 Android 设备进行通信
  4. 安装: 安装Android Studio, 然后可以在安装目录的 android/sdk/platform-tools/ 中可以找到 adb 工具(win10实测)
实例 - 屏幕截图
  1. 屏幕截图

    $ adb shell screencap /sdcard/screen.png
    $ adb pull /sdcard/screen.png
  2. 说明

    • adb shell 对设备/模拟器发送shell命令
    • adb shell screencap 对设备/模拟器进行截图
    • /sdcard 设备中的SD卡位置
    • adb pull remote local 从设备/模拟器将指定文件复制到开发计算机
>adb shell screencap -h
usage: screencap [-hp] [-d display-id] [FILENAME]
   -h: this message
   -p: save the file as a png.
   -d: specify the display id to capture, default 0.
If FILENAME ends with .png it will be saved as a png.
If FILENAME is not given, the results will be printed to stdout.
其他adb命令(选取)
命令解释
adb devices输出设备/模拟器列表
adb help输出命令列表
adb version输出版本号
adb pull remote local从设备/模拟器将指定文件复制到开发计算机
adb push local remote从开发计算机将指定文件复制到设备/模拟器
adb shell在设备/模拟器中启动远程 shell
adb shell shell_command在设备/模拟器中发出 shell 命令,然后退出远程 shell
实战
C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools>adb shell screencap /sdcard/test.png
C:\Users\xxx\AppData\Local\Android\Sdk\platform-tools>adb pull /sdcard/test.png C:\Users\xxx\Documents\jump_game\test.png
/sdcard/test.png: 1 file pulled. 18.0 MB/s (122898 bytes in 0.007s)

图1

在项目中的作用 - 获取屏幕截图
下一步 - 获取图片中某个图形的位置

2.3 图形工具 —— Pillow


Pillow简介
  1. Pillow官方英文文档

    Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors.

  2. Pillow官方中文教程

  3. 功能简介:Python中的图像处理库
  4. 安装: pip install Pillow
  5. 模块调用: import PIL
Pillow 边学边用

说明: 利用Python中的Pillow模块,获取图像信息。
1. 有用的代码

有用的代码描述
from PIL import Image调用PIL.Image模块
im = Image.open('xxx.png')打开某个图片, 利用dir(im) 查看对象属性
width, hight = im.size有用的属性,图片的宽高,单位是像素ps
ps = im.load()下载图像信息,返回PixelAccess object
ps[x,y]获取某个位置的像素值
ps[x,y] = (R, G, B, A)重置某个位置的像素值
im.show()显示图片,在调试的时候经常用到
im.save(r'path\to\xxx.png')保存图片

2. 代码理解与测试
* 利用adb获取到的图片1, 改变图片1中某一部分的颜色, 并保存

>>> from PIL import Image
>>> im = Image.open('test.png')
>>> x_max, y_max = im.size
>>> x_max, y_max
(1080, 1920)
>>> ps = im.load()
>>> ps        # 由打印结果看出ps是一个PixelAccess object,可对其进行像素相关操作
<PixelAccess object at 0x0000022DADAA2DD0>
>>> ps[1,1]   # 获取坐标为(1,1)位置处的像素
(179, 161, 154, 255)
>>> for x in range(100):
...     for y in range(100):
...             ps[x,y] = (255, 255, 255, 255)  # 改变像素值
...
>>> im.show()  # 展示图片,便于调试
>>> im.save(r'result.png') #保存
  1. 结果
    这里写图片描述
    左图为adb获取的图,右图为Pillow处理后的图。(利用matplotlib合成)
    图片左上角颜色发生改变,正是想要看到的结果。 这说明,可以利用获取像素对图形进行分类,可以利用像素的重置删繁就简, 从而进行有效的操作
实战

删除截图中的背景图和阴影部分。
这里写图片描述
说明: 左图为截图,右图为处理后的图。(利用matplotlib合成)

技术问题解决
next - 计算问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值