小学生python游戏编程3----拼图游戏-准备

小学生python游戏编程3---拼图游戏-准备

    • 主要设计
      • 1、背景
      • 2、图片分隔
      • 3、把小图片打乱顺序组装成拼图
    • 应用知识点
      • 1、python知识点
        • 1.1 Pillow(PIL)库的用法介绍
        • 1.2 PIL安装
        • 1.3 Image属性
        • 1.4 image方法
    • 功能截图
    • 代码实现
    • 总结
    • 源码获取

主要设计

1、背景

早在1760年,法英两国几乎同时出现这种既流行又有益的娱乐方式。把一张图片粘在硬纸板上,然后把它剪成不规则的小碎片。最初这些图片都是有教育意义的,要么附有适于年轻人阅读的短文,要么向新兴资产阶级传授历史或地理知识。
到19世纪初,新的大规模生产工业技术赋予了拼图明确的形式。以前庞大笨重的拼图由边缘光滑的碎片排列组成,轻微的震动就能使它们分开。在1840年左右,德国和法国的拼图制造商用联锁的咬接机来切割拼图,现代的拼图迷们都很熟悉这种形式。他们用软木材、夹板和纸板代替硬木薄板,大大降低了成本。最终价格低廉的拼图被各阶层的消费者接受,很快在孩子们、成年人和老年人中掀起玩拼图狂潮。
相信大家都玩过很多纸质的,木质的,电子的拼图游戏,今天就讲讲用python如何实现拼图游戏的准备工作。在图片上写些英语单词,孩子拼完一个基本可以看到一个完整的英语单词。
在这里插入图片描述

2、图片分隔

把整张图片分隔成n个小图片
在这里插入图片描述

3、把小图片打乱顺序组装成拼图

应用知识点

1、python知识点

1.1 Pillow(PIL)库的用法介绍

Pillow库是一个Python的第三方库。
在Python2中,PIL(Python Imaging Library)是一个非常好用的图像处理库,但PIL不支持Python3,所以有人(Alex Clark和Contributors)提供了Pillow,可以在Python3中使用。
打开一张图片并显示,如下代码

# coding=utf-8
from PIL import Image 
image = Image.open("aaa.jpg")
image.show()

1.2 PIL安装

(venv) F:\le_python>pip install pillow
Looking in indexes: https://pypi.doubanio.com/simple
Collecting pillowDownloading https://pypi.doubanio.com/packages/ce/1c/c639b5662d3b831c4b95e08bc610a50a5b9e719f71338bedc0117e8dc5d3/Pillow-9.2.0-cp37-cp37m-win32.whl (2.8MB)100% |████████████████████████████████| 2.8MB 6.0MB/s
Installing collected packages: pillow
Successfully installed pillow-9.2.0

1.3 Image属性

    image = Image.open("images/yuantu/apple.png")print('width: ', image.width)print('height: ', image.height)print('size: ', image.size)print('mode: ', image.mode)print('format: ', image.format)print('is_animated: ', image.is_animated)print('readonly: ', image.readonly)print('info:', image.info)

显示:

width:  231
height:  184
size:  (231, 184)
mode:  RGB
format:  PNG
is_animated:  False
readonly:  1
info: {'dpi': (119.9896, 119.9896), 'Software': 'Snipaste'}

width属性表示图片的像素宽度
height属性表示图片的像素高度
width和height组成了size属性,size是一个元组。
mode属性表示图片的模式,如RGBA,RGB,P,L等。
format属性表示图片的格式,格式一般与图片的后缀扩展名相关。
readonly属性表述图片是否为只读,值为1或0,表示的是布尔值。
info属性表示图片的信息,是一个字典。

1.4 image方法

打开文件:
yuantu = Image.open(os.path.join(rootdir,‘apple.png’))
在这里插入图片描述
裁剪图片:
image.crop(box=None): 裁剪图片,返回裁剪区域的图片。box表示裁剪的区域,传入长度为4的元组(x0, y0, x1, y1),不传默认为拷贝原图,相当于copy()方法,如果裁剪的区域超过了原图的区域,超出部分用像素格填充。
box解释:
box, 图片粘贴的位置或区域。传入一个长度为2或4的元组,如果不传值,默认为(0, 0),图片被粘贴在当前图片的左上角。如果传入长度为2的元组(x, y),表示被粘贴图片的左上角坐标位置。如果传入长度为4的元组(x1, y1, x2, y2),表示图片粘贴的区域,此时区域的大小必须与被粘贴图片一致,否则会报错,传入的元组长度为其他值也会报错。
在这里插入图片描述
在这里插入图片描述
分隔成如下小图

功能截图

在这里插入图片描述

代码实现

# -*- coding: utf-8 -*-
# @Time : 2022年10月05日 16时07分
# @Author : Chenyi
# @File : 图片分隔.py# python install pillow
import os
from PIL import Image# 分割图片,横向分成x份,纵向分成y份
def cut_image(image, x, y):width, height = image.sizeitem_width = int(width / x)item_height = int(height / y)box_list = []# (left, upper, right, lower)for i in range(0, x):  # 横向for j in range(0, y): # 纵向print(i * item_width, item_height * j, (i + 1) * item_width, item_height * (j+1))box = (i * item_width, item_height * j, (i + 1) * item_width, item_height* (j+1))box_list.append(box)image_list = [image.crop(box) for box in box_list]return image_list# 保存分割后的图片
def save_images(image_list, dir_name, file_name):index = 1for image in image_list:image.save(dir_name+file_name + '-' + str(index) + '.png', 'PNG')index += 1if __name__ == '__main__':rootdir = "images/yuantu"# 获取rootdir目录下的文件名清单list = os.listdir(rootdir)print(list)yuantu = Image.open(os.path.join(rootdir,'apple.png'))print(yuantu)pics=cut_image(yuantu, 3, 3)save_images(pics, "images/fenge/", 'apple')

总结

通过此次的《拼图游戏准备》,让我对PIL中image的相关知识有了进一步的了解,对用 python这门语言进行图片处理比以前更深刻的认识。

源码获取

关注博主后,私聊博主免费获取
需要技术指导,育娃新思考,企业软件合作等更多服务请联系博主

今天是以此模板持续更新此育儿专栏的第 3 /50次。
可以关注我,点赞我、评论我、收藏我啦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/252003.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

基于Python的贪吃蛇游戏设计

摘要 本次论文设计的主题是贪吃蛇游戏。游戏的主要内容大致分为游戏界面设计和游戏功能设计两大部分,其中游戏界面设计是以满足用户的视觉体验为主,游戏功能设计是在满足原有的贪吃蛇游戏基本功能的基础上添加一些其他的功能。本次的实现代码也较为简洁&…

Python游戏汇总:三十个pygame游戏代码

提示:爱学习哦,不要沉迷游戏,平时打发一下无聊时间最好啦 正文 欢迎阅读: 1.python21点小游戏。2.Python笨鸟先飞小游戏。3.python绘制满天星小游戏。4.吃豆豆小游戏项目。 5.python忍者奔跑小游戏。6.python迷宫小游戏。7.pyt…

猜拳游戏-python

今天在网上发现很多人都用python语言写出了一个猜拳游戏,看着效果还真不错。于是我在网上看了一个大佬写的,有了灵感,写出了下面的程序。 首先,大家知道,在python中,random函数可以做出随机数的程序&#…

python一行代码制作20款经典游戏

今天分享一个有趣的Python游戏库freegames,它包含20余款经典小游戏,像贪吃蛇、吃豆人、乒乓、数字华容道等等,依托于标准库Turtle。 我们不仅可以通过1行代码进行重温这些童年小游戏,还可以查看源码自己学习下游戏编写&#xff0…

迈入python游戏编程的大门,超详细的python环境搭建教程

0. 前言 Hello,大家好!欢迎来到python教程入门学习公众号,我是带你们一起写游戏的猫姐! 经常有朋友问梦想:梦想,我现在上小学(初中),我想学习Python游戏编程&#xff0c…

Python游戏-实现键盘控制功能

要想实现键盘控制作用&#xff0c;就需要给游戏键盘监听事件 利用pygame模块的key.get_pressed()方法&#xff0c;来检测按键是否按下 key_press pygame.key.get_pressed()if not key_press[K_UP] and ball.rect.bottom < height:ball.movedown()elif key_press[K_UP] and …

Python实现迷宫游戏

项目&#xff1a;迷宫游戏 摘要1.引言1.1研究的背景及意义1.2研究的内容 2.系统结构2.1系统的结构2.2基本思路 3.实现代码3.1Maze类3.2Player类3.3Controller类3.4主函数 4.实验5.总结和展望参考文献 摘要 本次实验设计了一款迷宫小游戏&#xff0c;采用用Python开发技术实现。…

苹果iOS 16如何显示WiFi密码【操作教程】

在以往的iOS系统上包括iOS 15&#xff0c;iPhone用户是无法在手机上直接查看WiFi密码。对于经常忘记WiFi密码或者想向他人分享WiFi密码的用户来说非常不友好。 不过&#xff0c;最新发布的iOS 16更新包含了一系列的的细节改进&#xff0c;其中一项就是终于支持查看当前连接的Wi…

iphone显示不了wifi已连接服务器,苹果手机显示已经连接wifi但是不能上网如何解决...

iPhone每次推出新款,必然引起消费市场的订购热潮&#xff0c;人们对iphone手机的热捧,塑造了独特的消费风格群体&#xff0c;纵然iphone的使用者这么多&#xff0c;还是有很多人不清楚iPhone显示已经连接wifi但是不能上网的情况如何解决&#xff0c;下面就由学习啦小编跟大家分…

iphone开蓝牙wifi上网慢_苹果iphone 7手机连接wifi网速很慢怎么办?

最近小编听到很多使用iPhone7手机用户反映iphone 7连接wifi网速很慢&#xff0c;浏览网页都打不开&#xff0c;图片要加载半天&#xff0c;那遇到iphone 7连接wifi网速很慢怎么办?下面丢锋网给大家分享三个解决iphone7网速慢的方法&#xff0c;希望可以帮到大家!出现苹果手机w…

解决苹果手机连接了wifi,依旧无法更新系统的问题

解决苹果手机连接了wifi&#xff0c;依旧无法更新系统的问题 解决苹果手机连接了wifi&#xff0c;依旧无法更新系统的问题 起因&#xff1a;买了iWatch&#xff0c;要用手机给表更新系统&#xff0c;只能是手机连接wifi&#xff0c;但是手机连接了wifi&#xff0c;页面依旧提…

苹果 iPhone 再现 Wi-Fi 漏洞

本文转载自IT之家 IT之家 7 月 5 日消息 上个月底&#xff0c;安全人员 Carl Schou 发现了一个苹果 iPhone 的奇特 Bug&#xff0c;连接特定 SSID“% p% s% s% s% s% n”的 WiFi 后会使手机无线连接功能作废&#xff0c;需要在设置中重置网络才能恢复。 现在他又发现了一个更严…

苹果手机怎么查看已连接的wifi密码_WIFI密码忘了?教你查看手机已连接WIFI的密码...

大家好,现在的手机都有保存wifi密码的功能&#xff0c;在我们第一次连接这个wifi的时候它就会自动的把密码保存到手机里面&#xff0c;我们第二次连接的时候就不需要输入手机密码了&#xff0c;但是时间长了以后可能你连自己家里wifi密码都忘记了&#xff0c;如果说哪一天你家里…

iPhone查看WiFi密码(篇章一)

2019独角兽企业重金招聘Python工程师标准>>> 第一章&#xff1a;iPhone查看那些曾经手动连接过的WiFi密码 1. 找到 iCloud &#xff08;不同系统版本位置不同&#xff0c;但都在设置里&#xff09; 进入“设置”里面&#xff0c;找到“iCloud” 确保“钥匙串”开启 …

苹果手机无法连接wifi_手机信号太差?一键查看连接的WIFI离我们多少米

手机已经使我们出行必备的工具&#xff0c;流量够用还好。如果和我一样出门都要蹭无线网那就有点不开心了&#xff0c;因为有无免费的WIFI或者信号强弱都说不准。 今天&#xff0c;给大家分享一个技巧&#xff0c;如何查看我们连接的WIFI离我们有多远&#xff1f;以及信号的强弱…

苹果手机如何分享wifi密码_怎样用手机改wifi密码

路由器是我们日常生活常用的东西&#xff0c;路由器可以发射WiFi供手机连接上网&#xff0c;但是有时候密码过于简单则会造成很多人连接导致网速变慢。那么&#xff0c;怎样用手机改wifi密码呢&#xff1f;下面将会为大家介绍。 怎样用手机改wifi密码 步骤1、手机连接Wi-Fi信号…

苹果手机如何投屏到电脑【无线有线】

现如今&#xff0c;有很多人喜欢将他们的iPhone手机屏幕投射到电脑&#xff0c;玩游戏&#xff0c;做直播&#xff0c;共享文件&#xff0c;等等。苹果手机本身也有内置airplay&#xff0c;那么如何将苹果手机投射到电脑呢&#xff1f;接下来给大家介绍2种方法。 傲软投屏 首先…

如何从 iPhone、iPad 和 Mac 共享 Wi-Fi 密码

可能很多朋友连接上家里的Wi-Fi 后不会特意记住Wi-Fi密码&#xff0c;如果有其他Apple产品想连接一下WiFi却忘记了密码怎么办&#xff1f;如果您遇到这种情况&#xff0c;采用以下办法您可以轻松地在 iPhone、iPad 和 Mac 之间共享您的 Wi-Fi 密码。 共享 Wi-Fi 密码的要求 解锁…

苹果怎么修改wifi代理服务器,苹果手机怎么修改wifi名称?

请问大家&#xff1a;怎么用苹果手机修改wifi名称&#xff1f; 答&#xff1a;用你的苹果手机&#xff0c;登录到路由器的设置页面&#xff0c;然后打开 无线设置 或者 Wi-Fi设置 这个选项&#xff0c;在打开的页面中&#xff0c;就可以修改wifi名称了&#xff0c;详细的操作步…

使用fiddler实现苹果ios手机抓包

Fiddler是一个强大的抓包工具&#xff0c;可以通过它抓取、查看和调试PC端、手机终端和远程服务器之间的http/https等通信。 Fiddler没有手机客户端&#xff0c;都是安装在PC上&#xff0c;要实现对手机上的程序抓包&#xff0c;则需要对PC上的Fiddler和手机端做一些配置。 此…