图形之图像,,


  图像

  在屏幕上画形状、线和单个像素只是制作图形的一种方式。有时我们还想用从别处得来的图片、可能是数码照片、从网上下载图片或者在图像编辑程序中创建的图片,在Pygame中,使用图像最简单的方法就是利用image函数。

  下面来看一个例子,我们要显示一个图像,如果你用本网站的安装程序安装了Python,这个图像已经在你的硬盘上,安装程序会在examples文件夹中创建一个images子文件夹,这个程序中要使用的文件是beach_ball.png。所以,如果你的系统是Windows,你会在这里找到这个文件:

  与孩子一起学编程-python教程

  完成这些例子,需要把beach_ball.png文件复制到保存Python程序的同一位置上。这样一来,程序运行时Python就能很容易地找到这个文件。把beach_ball.png文件放在正确的位置上后,键入代码清单16-11中的程序,试着运行这个程序。

  与孩子一起学编程-python教程与孩子一起学编程-python教程与孩子一起学编程-python教程

  运行这个程序时,会看到一个沙滩球的图像显示在Pygame窗口的左上角附近,如下图所示。

  与孩子一起学编程-python教程

  代码清单16-11中,只有第5行和第6行代码是新加的代码,所有其他代码都代码清单16-4到代码清单16-10中见过。我们把先前例子中的draw代码替换为从硬盘加载图像并显示图像的代码。

  第5行中。pygame.image.load()函数从硬盘加载一个图像,并创建一个名为my_ball的对象。my_ball对象是一个表面(前面讨论过表面)。不过我们看不到这个表面,它只在内存中,我们唯一能看到的表面是显示表面,名为screen(这在第3行创建)。第6行把my_ball表面复制到screen表面上,然后前面一样,通过display.flip()调用使它可见。

  与孩子一起学编程-python教程

  没关系的,Catert,很快我们就可以移动这个球了!

  你可能已经注意到代码清单16-11第6行有一个看上去很有趣的东西:screen.blit()。blit是什么意思?请从“术语箱”找出答案。

  在Pygame中,我们将像互从一个表面复制或块移到另一个表面,这里就是将像素从my_ball表面复制到screen表面。

  术语箱

  完成图形编程时,将像素从一个地方复制到另一个地方是很常见的(比如从变量复制到屏幕,或者从一个表面复制到另一个表面)。像素复制在编程中有一个特殊的名字,叫做块移(blitting),我们说将一个图像(或图像的一部分,或者只是一些像素)从一个地方“块移”到另一个地方。这只是“复制”的一种有趣的说法,不过看到“块移”时,你就会知道复制的是像素而不是其他内容。

  在代码清单16-11的第6行,我们把沙滩球图像块移到位置50,50,这表示距窗口左边界50像素,距上边界50像素。处理surface或rect时,这会设置图像左上角的位置,所以沙滩球的左边距离窗口左边界的50像素,沙滩球的顶边距离窗口上边界也是50像素。

评论关闭