Surface对象的创建
Surface是pygame提供的一个对象,有多个方法创建Surface对象
举几个例子
常用的返回surface的函数或者方法
#display模块中的setmode函数
pygame.display.setmode()-> Surface#设置运行屏幕 这里返回一个特殊的surface对象具体见display模块
#Font对象的render方法
render(text, antialias, color, background=None) -> Surface
#image模块
pygame.image.load ()
不常用的
pygame.display.get_surface () #返回当前用来作为屏幕的surface的引用
Surface实例创建
类似于使用Rect对象,Font对象等,也可以使用Surface对象直接创建实例
mySurface = pygame.Surface((50, 50))
Surface对象的方法
blit() 将一个图像(Surface 对象)绘制到另一个图像上方。
blit(source, dest, area=None, special_flags = 0) -> Rect
screen.blit(mySurface, (50,50))
#将mySurface绘制到screen上
将 source 参数指定的 Surface 对象绘制到该对象上。dest 参数指定绘制的位置,dest 的值可以是 source 的左上角坐标。如果传入一个 Rect 对象给 dest,那么 blit() 会使用它的左上角坐标,而与 Rect 的大小无关。
可选参数 area 是一个 Rect 对象,表示限定 source 指定的 Surface 对象的范围。
可选参数 special_flags 是 Pygame 1.8.0 新增的内容,用于指定混合的模式:BLEND_ADD,BLEND_SUB,BLEND_MULT,BLEND_MIN,BLEND_MAX;1.8.1 增加:BLEND_RGBA_ADD,BLEND_RGBA_SUB,BLEND_RGBA_MULT,BLEND_RGBA_MIN,BLEND_RGBA_MAX,BLEND_RGB_ADD,BLEND_RGB_SUB, BLEND_RGB_MULT,BLEND_RGB_MIN,BLEND_RGB_MAX;将来还可能添加更多新的标志。
返回值是一个 Rect 对象,表示实际绘制的矩形区域。
注意:
当绘制到一个 8 位的 Surface 对象上时,pixel alphas 会被忽略。
通过 colorkeys 和 surface alphas 设置透明度的 Surface 对象,通过 blit() 绘制自身可能会导致颜色有少许不同。
convert() 修改图像(Surface 对象)的像素格式。
convert(Surface) -> Surface
convert(depth, flags=0) -> Surface
convert(masks, flags=0) -> Surface
convert() -> Surface
创建一个新的 Surface 对象并返回,可以定制该对象的像素格式。新的像素格式可以从其他已存在的 Surface 对象中获取。另外,depth,flags,masks 参数的使用跟调用 Surface() 相似。
如果没有传入任何参数,那么创建一个相同像素格式的 Surface 对象。
如果原来包含 alpha 通道(小甲鱼温馨提示:即 pixel alphas,见前边讲的透明度控制部分)的 Surface 对象,那么转换后(新创建)的 Surface 对象将不会保留。如果需要保留 alpha 通道,请使用 convert_alpha() 方法。
注意:为了让 pygame 可以更

Surface是pygame中用于图像处理的核心对象,可以通过多种方法创建,如setmode、Font对象的render、image模块的load等。Surface对象提供了丰富的绘图方法,如blit用于绘制图像,convert和convert_alpha用于优化像素格式,fill用于填充颜色,scroll用于移动图像,以及设置和获取透明度、剪切区域等属性。此外,还有lock和unlock用于像素访问控制,以及get_at和set_at用于像素级别的颜色操作。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



