Pygame 官方文档 - pygame.image

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()函数可以支持以下格式:

  1. JPG
  2. PNG
  3. GIF (non-animated)
  4. BMP
  5. PCX
  6. TGA (uncompressed)
  7. TIF
  8. LBM (and PBM)
  9. PBM (and PGM, PPM)
  10. XPM

保存图像仅支持一组有限的格式。 您可以保存为以下格式:

  1. BMP
  2. TGA
  3. PNG
  4. 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.load的示例

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.tostring的示例

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.

猜你喜欢

转载自blog.csdn.net/Enderman_xiaohei/article/details/87900026