更新时间:2022年07月21日18时23分 来源:传智教育 浏览次数:
在Surface对象上绘制图形分为加载图片和绘制图片两个步骤。
加载图片即将图片读取到程序中,通过pygame中 image模块的load()方法可以向程序中加载图片,生成Surface对象。load()方法的声明如下:
load (filename) -> Surface imgSurf =pygame.image.load('bg.jpg')
以上示例从当前路径下加载名为“bg.jpg”的图片(分辨率为640像素×480像素),并使用变量 imgSurf 保存生成的Surface对象。
aPygame中绘制图像即将一个Surface对象叠加在另一个Surface对象之上,这类以于现实生活中不同尺寸纸质图形的堆叠。通过Surface对象的blit()方法可以实现图像绘制,blit()方法的语法如下:
blit (source, dest, area=None, special flags = 0) -> Rect
下面对blit()方法的参数进行说明。
·参数source接收被绘制的Surface对象。
·参数dest接收一个表示位置的元组,该元组指定left和top两个值,left和top
别表示图片距离窗口左边和顶部的距离。该参数亦可接收一个表示矩形的元组left,top,width,height)(left、top表示矩形的位置,width、height表示矩形的宽和高),矩形的位置作为绘制的位置。
·参数area是一个可选参数,通过该参数可设置矩形区域。若设置的矩形区域小source所设置Surface对象的区域,那么仅绘制Surface对象的部分内容。
·参数special flags是标志位。
使用blit()方法将加载生成的imgSurf对象绘制到窗口WINSET中,具体示例如下:
WINSET.blit(imgSurf, (0, 0) )
以上示例代码将imgSurf绘制到了窗口的(0,0)位置,由于被绘制的图片与窗尺寸一致,这里的操作等同于为窗口绘制了背景图片。
将绘制图片的代码添加到程序7_pg_test.py中,具体如下所示:
以上示例从当前路径下加载名为“bg.jpg”的图片(分辨率为640像素×480像素),并使用变量 imgSurf 保存生成的Surface对象。
(2)绘制图片
aPygame中绘制图像即将一个Surface对象叠加在另一个Surface对象之上,这类以于现实生活中不同尺寸纸质图形的堆叠。通过Surface对象的blit()方法可以实现图像绘制,blit()方法的语法如下:
blit (source, dest, area=None, special flags = 0) -> Rect
下面对blit()方法的参数进行说明。
·参数source接收被绘制的Surface对象。
·参数dest接收一个表示位置的元组,该元组指定left和top两个值,left和top
别表示图片距离窗口左边和顶部的距离。该参数亦可接收一个表示矩形的元组left,top,width,height)(left、top表示矩形的位置,width、height表示矩形的宽和高),矩形的位置作为绘制的位置。
·参数area是一个可选参数,通过该参数可设置矩形区域。若设置的矩形区域小source所设置Surface对象的区域,那么仅绘制Surface对象的部分内容。
·参数special flags是标志位。
使用blit()方法将加载生成的imgSurf对象绘制到窗口WINSET中,具体示例如下:
WINSET.blit(imgSurf, (0, 0) )
以上示例代码将imgSurf绘制到了窗口的(0,0)位置,由于被绘制的图片与窗尺寸一致,这里的操作等同于为窗口绘制了背景图片。
将绘制图片的代码添加到程序7_pg_test.py中,具体如下所示:
... WINSET = pygame.display.set_mode((WINWIDTH, WINHEIGHT)) WINSET.fIL1 (BGCOLOR) #填充背景颜色 pygame.display.set_caption('数字推盘') image = pygame,image.load('bg. jpg') #加载图片 WINSET.blit(image, (0, 0)) #绘制图片 ... ...