全国服务热线:400-6263-721

位置:东莞少儿编程培训学校 > 学校动态 > 少儿Python编程 图形图像

少儿Python编程 图形图像

来源:东莞少儿编程培训学校时间:2023/3/17 14:23:27

  本讲将自己动手制作游戏,练习编写50行左右的比较复杂的程序,在此过程中将继续学习图形图像相关知识、播放声音,以及运用前面学习的各种数据类型、函数等技术。

  15.1 图形图像

  15.1.1 原理

  早期的计算机和手机都用按键输入,屏幕只能显示文字。后来随着软硬件升级,逐步出现彩色显示器,以窗口界面为主,使用鼠标和触摸屏操作的计算机和手机系统。

  现在在屏幕上看到的所有显示都是以图片方式“绘制”出来的。之前讲过软件分为系统软件和应用软件,系统软件的一部分工作是管理当前开启的应用程序(应用软件),并将各个软件的输出“绘制”在屏幕上。因此作为普通开发者,只需要考虑应用软件的输出即可。

  上一讲在窗口中绘制图形:窗口是开发者在程序内定义的一个固定大小的区域,绘图位置通过坐标(x,y)指定。

  屏幕上显示的画面又分为图形和图像两种,之前学习的绘制矩形、圆形,以及显示文字都属于“图形”,另一种是图像,它可能是拍摄的照片或者用画图软件绘制的卡通人物或风景,在Python程序中从文件读出,并将其内容绘制到某一区域,叫做绘制图像。

  15.1.2 图像格式

  从绘图的角度看,图像分为两种:带有透明度通道的图片和不带有透明度通道的图片。

  如图15.1所示,将两张卡通羊图片绘制在背景图上,左侧不带透明通道,因此将其白色背景也贴了出来,右侧带透明通道,并其将卡通羊的背景置为透明,贴图后的效果更加自然。一般情况下,在绘制背景图片,以及后面不需要透出其它图片时,使用不带透明通道的图片即可。而绘制前景图片,比如游戏中需要移动变化的卡通人物,则使用带透明通道图片。

  图像一般存储在图片文件中,通过不同的扩展名区分不同的格式,较常见的图片格式有bmp、jpg和png。bmp是早期的图像存储格式,它直接把图片中每个像素的颜色存储在图片文件中,占空间较大;jpg是较常用的图片存储格式,它用压缩算法将图片内容压缩后存储,占存储空间较小,有时也会损失一些图片的质量,在保存图片时可以设置压缩比例,以便在图片的大小和精度之间达到平衡;png采用无损压缩格式,存储的是带透明通道的图片。

  15.1.3 获取图像

  图形界面或多或少用到图像,比如:网站的Logo(商标)、软件的欢迎界面、小图标等,游戏为了提升视觉效果会用到更多的图像。

  图片可以从网络下载,方法是:打开浏览器,百度图片搜索:https://images.baidu.com/, 输入想要查找图片的关键字,找到合适的图片后,在图片中点击右键,选择“另存图像为”,即可将网络上的图片下载到自己的电脑上。如图15.2所示:

  从网络上下载的图片多数是jpg格式,如果需要透明通道,则要使用绘图软件修改,或者在搜索时指定png格式。

  下载网络图片简单快捷,但会涉及图片的版权问题,如果仅用于学习和实验,问题不大。也可以自己用电脑绘制图片,如使用Windows自带的绘图工具:开始->所有程序->附件->画图,绘图后保存成图片文件即可在程序中使用。另外,也可以把手机中的照片文件通过微信传到电脑上使用。常用的绘图工具还有用于修图的PhotoShop,和用于绘图的Illustrator等等。

  15.1.4 Python绘图

  任何编程语言,操作图片一般都需要三步:读取图片文件、调整图片、显示图片。本例使用游戏开发库pygame操作图片:

  步,使用pygame.image.load()函数读取图片,它支持主流的图片格式,读取文件后将其转换成pygame的内部图片存储格式。

  第二步,使用pygame.transform.scale()函数将图片缩放到指定大小。

  第三步,使用画布提供的screen.blit()函数将图片按指定的位置显示在画布(绘图窗口)上。

  01 import pygame

  02

  03 WIDTH = 640

  04 HEIGHT = 480

  05

  06 pygame.init()

  07 screen = pygame.display.set_mode((WIDTH, HEIGHT))

  08

  09 back_img = pygame.image.load('bg.jpg')

  10 background = pygame.transform.scale(back_img, (WIDTH, HEIGHT))

  11

  12 running = True

  13 while running:

  14 for event in pygame.event.get():

  15 if event.type == pygame.QUIT:

  16 running = False

  17 screen.blit(background, (0, 0))

  18 pygame.display.update()

  19

  20 pygame.quit()

  第01-07行引入pygame游戏开发模块,初始化,并创建一个宽为640,高为480的窗口。(详见上一讲)

  第09行加载当前目录下的图片文件bg.jpg。

  第10行将图片缩放成与窗口同样的大小。

  第12行设置变量running,用于控制程序主循环。

  第13行用while实现程序主循环,当running为True时循环显示,否则退出。

  第14-16行接收用户操作,当用户关闭窗口时将running设为False,退出主循环。

  第17行用blit方法将背景图片显示在窗口之中(类似于将图像区域复制粘贴到显示区域),显示位置为(0,0)。

  第18行更新显示,将内存中的数据显示在屏幕上。

  第20行释放pygame资源。

领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/675/news/604620/违者必究! 以上就是东莞少儿编程培训学校 小编为您整理 少儿Python编程 图形图像的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-6263-721