pygame.image
Pygame中图像传输的模块
pygame.image.load - 从文件中加载新图像
pygame.image.save - 将图像保存到磁盘
pygame.image.get_extended - 测试是否可以加载扩展图像格式
pygame.image.tostring - 将图像传输到字符串缓冲区
pygame.image.fromstring - 从字符串缓冲区创建新的Surface对象
pygame.image.frombuffer - 创建一个在字符串缓冲区内共享数据的新Surface对象
image模块包含用于加载和保存图片的函数,以及将Surface对象转换为其他包可用的格式。请注意,没有Image类; 图像作为Surface对象加载。 Surface类允许操作(绘制线条,设置像素,捕获区域等)。
image模块是pygame的必需依赖项,但它只能选择性地支持任何扩展文件格式(extended file formats)。 默认情况下,它只能加载未压缩的BMP图像。 使用完整图像支持构建时,pygame.image.load()函数可以支持以下格式:
- JPG
- PNG
- GIF (non-animated)
- BMP
- PCX
- TGA (uncompressed)
- TIF
- LBM (and PBM)
- PBM (and PGM, PPM)
- XPM
保存图像仅支持一组有限的格式。 您可以保存为以下格式:
- BMP
- TGA
- PNG
- JPEG
PNG,JPEG是pygame 1.8中保存的新功能。
pygame.image.load()
↶
从文件中加载新图像
load(filename) -> Surface
load(fileobj, namehint="") -> Surface
从文件源(file source)加载图像。您可以传递文件名或类似Python文件的对象。
Pygame将自动确定图像类型(例如,GIF或bitmap)并从数据中创建新的Surface对象。在某些情况下,它需要知道文件扩展名(例如,GIF图像应以“.gif”结尾)。如果传递原始文件类对象,则可能还希望将原始文件名作为namehint(名字提示)参数传递。
返回的Surface对象将包含与其来源相同的颜色格式,颜色键(colorkey)和alpha透明度。您经常需要调用不带参数的Surface.convert()来创建一个可以在屏幕上更快地绘制的副本。
对于Alpha透明度,如.png图像,在加载后使用convert_alpha()方法,以使图像具有像素透明度。
Pygame虽然可能并不总是支持所有的图像格式,但是至少它将支持未压缩的BMP。如果pygame.image.get_extended()返回’True’,您应该能够加载大多数图像(包括PNG,JPG和GIF)。
您应该使用os.path.join()来兼容。
eg.
asurf = pygame.image.load(os.path.join('data', 'bla.png'))
pygame.image.save()
↶
将图像保存到磁盘
save(Surface, filename) -> None
这会将Surface对象保存为BMP,TGA,PNG或JPEG图像。 如果文件扩展名无法识别,则默认为TGA。 TGA和BMP文件格式都会创建未压缩的文件。
PNG,JPEG是pygame 1.8中保存的新功能。
搜索pygame.image.save的示例
pygame.image.get_extended()
↶
测试是否可以加载扩展图像格式
get_extended() -> bool
如果pygame是使用扩展图像格式构建的,则此函数将返回True。 仍然无法确定哪些格式可用,但您将能够全部加载它们。
搜索pygame.image.get_extended的示例
pygame.image.tostring()
↶
将图像传输到字符串缓冲区
tostring(Surface, format, flipped=False) -> string
创建一个可以使用其他Python image包中的“fromstring”方法传输的字符串。 一些Python图像包更喜欢它们的图像,从底部到顶部格式(例如PyOpenGL)。 如果为翻转的参数传递True,则字符串缓冲区将垂直翻转。
format参数是以下值之一的字符串。 请注意,只有8位Surface对象可以使用“P”格式。 其他格式适用于任何Surface对象。 另请注意,其他Python image包支持的格式比pygame更多。
P | 8位调色Surfaces |
---|---|
P | 8位调色Surfaces(8-bit palettized Surfaces) |
RGB | 24位图像(24-bit image) |
RGBX | 32位图像,未使用空间(2-bit image with unused space) |
RGBA | 带有alpha通道的32位图像(32-bit image with an alpha channel) |
ARGB | 优先先用alpha通道的32位图像(32-bit image with alpha channel first) |
RGBA_PREMULT | 32位图像,颜色由alpha通道缩放(32-bit image with colors scaled by alpha channel) |
ARGB_PREMULT | 32位图像,颜色由alpha通道缩放,alpha通道优先(32-bit image with colors scaled by alpha channel, alpha channel first) |
pygame.image.fromstring()
↶
从字符串缓冲区创建新的Surface对象
fromstring(string, size, format, flipped=False) -> Surface
此函数接受类似于pygame.image.tostring()的参数。 size参数是一对表示宽度和高度的数字。 创建新Surface对象后,您可以销毁字符串缓冲区。
大小和格式图像必须计算与传递的字符串缓冲区完全相同的大小。 否则将引发异常。
请参阅pygame.image.frombuffer()方法,以获得将图像传输到pygame的更快方法。
搜索pygame.image.fromstring的示例
pygame.image.frombuffer()
↶
创建一个在字符串缓冲区内共享数据的新Surface对象
frombuffer(string, size, format) -> Surface
创建一个直接从字符串缓冲区共享像素数据的新Surface对象。 此方法采用与pygame.image.fromstring()相同的参数,但无法垂直翻转源数据(source data)。
这将比pygame.image.fromstring()更快地从字符串缓冲区创建新的Surface对象,因为不必分配和复制像素数据。
搜索pygame.image.frombuffer的示例
以上文档,自己翻译,可能有误,可参考:pygame.image
点我回顶部 ☚
Fin.