-
pygame.image
- pygame module for image transfer
— load new image from a file (or file-like object) — save an image to file (or file-like object) — get version number of the SDL_Image library being used — test if extended image formats can be loaded — transfer image to string buffer — create new Surface from a string buffer — create a new Surface that shares data inside a bytes buffer — load new BMP image from a file (or file-like object) — load an image from a file (or file-like object) — save a png/jpg image to file (or file-like object) 图像模块包含加载和保存图片以及将表面转换为其他包可用格式的功能。
请注意,没有Image类;图像作为Surface对象加载。Surface类允许操作(绘制线条、设置像素、捕获区域等)。
在绝大多数安装中,pyGame都是通过在幕后使用SDL_Image库支持扩展格式而构建的。但是,某些安装可能仅支持解压缩
BMP
图像。有了完全的映像支持,pygame.image.load()
load new image from a file (or file-like object) 函数可以加载以下格式。BMP
GIF
(非动画)JPEG
LBM
(及PBM
,PGM
,PPM
)PCX
PNG
PNM
SVG
(有限支持,使用Nano SVG)TGA
(未压缩)TIFF
WEBP
XPM
New in pygame 2.0: 加载SVG、WebP、PNM
保存图像仅支持一组有限的格式。您可以保存为以下格式。
BMP
JPEG
PNG
TGA
JPEG
和JPG
,以及TIF
和TIFF
参考相同的文件格式New in pygame 1.8: 保存PNG和JPEG文件。
- pygame.image.load()¶
- load new image from a file (or file-like object)load(filename) -> Surfaceload(fileobj, namehint="") -> Surface
从文件源加载图像。您可以传递一个文件名、一个类似于Python文件的对象或一个pathlib.Path。
PYGAME将自动确定图像类型(例如,
GIF
或位图),并根据数据创建新的Surface对象。在某些情况下,它将需要知道文件扩展名(例如,GIF
图像应以“.gif”结尾)。如果传递一个原始的类似文件的对象,您可能还希望将原始文件名作为namehint参数传递。返回的Surface将包含与其来自的文件相同的颜色格式、Colorkey和Alpha透明度。你会经常想要打电话给
pygame.Surface.convert()
change the pixel format of an image 在没有参数的情况下,创建一个将在屏幕上更快绘制的副本。对于Alpha透明度,例如在.png图像中,请使用
pygame.Surface.convert_alpha()
change the pixel format of an image including per pixel alphas 方法,以便图像具有每像素的透明度。PYGAME可能并不总是支持所有的图像格式。至少它将支持未压缩的
BMP
。如果pygame.image.get_extended()
test if extended image formats can be loaded 退货True
,你应该能够加载大多数图像(包括PNG,JPG和GIF)。您应该使用
os.path.join()
为了兼容性。eg. asurf = pygame.image.load(os.path.join('data', 'bla.png'))
- pygame.image.save()¶
- save an image to file (or file-like object)save(Surface, filename) -> Nonesave(Surface, fileobj, namehint="") -> None
这会将您的曲面另存为
BMP
,TGA
,PNG
,或JPEG
形象。如果无法识别文件扩展名,则默认为TGA
。两者都有TGA
,以及BMP
文件格式创建未压缩的文件。您可以传递一个文件名、一个路径lib.Path或一个类似于Python文件的对象。对于类似文件的对象,图像保存到TGA
格式,除非传入带有可识别扩展名的名称提示。备注
当保存到类似文件的对象时,对于大多数格式,似乎需要在保存到该对象后刷新该对象,以便可以从该对象加载。
Changed in pygame 1.8: 保存PNG和JPEG文件。
Changed in pygame 2.0.0: 这个
namehint
参数,以便可以保存其他格式TGA
变成一个类似文件的物体。可以使用JPEG保存为类似文件的对象。
- pygame.image.get_sdl_image_version()¶
- get version number of the SDL_Image library being usedget_sdl_image_version() -> Noneget_sdl_image_version() -> (major, minor, patch)
如果pyGame是使用扩展图像格式构建的,则此函数将以3个整数的元组形式返回SDL_Image库的版本号
(major, minor, patch)
。如果不是,则它将返回None
。New in pygame 2.0.0.
- pygame.image.get_extended()¶
- test if extended image formats can be loadedget_extended() -> bool
如果pyGame是用扩展的图像格式构建的,则此函数将返回True。仍然无法确定哪些格式将可用,但通常您将能够加载所有这些格式。
- pygame.image.tostring()¶
- transfer image to string buffertostring(Surface, format, flipped=False) -> bytes
创建一个可使用
fromstring
或frombytes
其他Python图像包中的方法。一些Python图像包更喜欢自下而上格式的图像(例如,PyOpenGL)。如果你通过了True
对于翻转的参数,字符串缓冲区将垂直翻转。Format参数是下列值之一的字符串。请注意,只有8位曲面可以使用“P”格式。其他格式适用于任何曲面。还要注意的是,其他的Python图像包比pyGame支持更多的格式。
P
,8位调色板表面RGB
,24位图像RGBX
,具有未使用空间的32位图像RGBA
,带有Alpha通道的32位图像ARGB
,首先使用Alpha通道的32位图像RGBA_PREMULT
,颜色按Alpha通道缩放的32位图像ARGB_PREMULT
,颜色按Alpha通道缩放的32位图像,Alpha通道优先
- pygame.image.fromstring()¶
- create new Surface from a string bufferfromstring(bytes, size, format, flipped=False) -> Surface
此函数的参数类似于
pygame.image.tostring()
transfer image to string buffer 。Size参数是一对表示宽度和高度的数字。一旦创建了新的Surface,它就独立于传入字节的内存。传递的字节和格式必须精确计算到指定的图像大小。否则,将成为
ValueError
都会被举起。请参阅
pygame.image.frombuffer()
create a new Surface that shares data inside a bytes buffer 方法,以获得可能更快的将图像传输到pyGame的方法。备注
fromstring()
和tostring()
使用“字符串”命名,但它们是以字节为单位进行处理的。在Python2中,str=bytes,所以这是“from string”,就像在Python2字符串中一样。
- pygame.image.frombuffer()¶
- create a new Surface that shares data inside a bytes bufferfrombuffer(buffer, size, format) -> Surface
创建直接从缓冲区共享像素数据的新曲面。此缓冲区可以是字节、字节数组、内存视图、
pygame.BufferProxy
pygame object to export a surface buffer through an array protocol 或任何支持缓冲区协议的对象。此方法采用类似的参数pygame.image.fromstring()
create new Surface from a string buffer ,但无法垂直翻转源数据。它的运行速度会比
pygame.image.fromstring()
create new Surface from a string buffer ,因为没有像素数据必须被分配和复制。它接受以下‘格式’参数:
P
,8位调色板表面RGB
,24位图像BGR
,24位图像,红色和蓝色通道互换。RGBX
,具有未使用空间的32位图像RGBA
,带有Alpha通道的32位图像ARGB
,首先使用Alpha通道的32位图像
- pygame.image.load_basic()¶
- load new BMP image from a file (or file-like object)load_basic(file) -> Surface
从文件源加载图像。您可以传递文件名或类似于Python文件的对象,也可以传递路径lib.Path。
该功能仅支持加载基本的图像格式,即
BMP
格式化。此功能始终可用,无论是如何构建的。
- pygame.image.load_extended()¶
- load an image from a file (or file-like object)load_extended(filename) -> Surfaceload_extended(fileobj, namehint="") -> Surface
此函数类似于
pygame.image.load()
load new image from a file (or file-like object) ,唯一不同的是,只有在构建时使用扩展的图像格式支持时,才能使用该函数。Changed in pygame 2.0.1: 此函数始终可用,但会引发
NotImplementedError
如果不支持扩展图像格式。以前,此功能可能可用,也可能不可用,具体取决于扩展图像格式支持的状态。
- pygame.image.save_extended()¶
- save a png/jpg image to file (or file-like object)save_extended(Surface, filename) -> Nonesave_extended(Surface, fileobj, namehint="") -> None
这会将您的曲面另存为
PNG
或JPEG
图像。如果要将图像保存到类似文件的对象,则此函数使用namehint参数来确定要保存的文件的格式。保存到
JPEG
如果在保存到类似文件的对象时未指定名称提示。Changed in pygame 2.0.1: 此函数始终可用,但会引发
NotImplementedError
如果不支持扩展图像格式。以前,此功能可能可用,也可能不可用,具体取决于扩展图像格式支持的状态。
Edit on GitHub