"""
pygame像素直接访问类PxielArray类研究程序
"""
__author__ = "李兴球"
__date__ = "2019/9/9"
import pygame
image = pygame.image.load('images/test.png')
screen = pygame.display.set_mode(image.get_size(),0,32)
image = image.convert_alpha()
print(image.unmap_rgb(-65536)) # 红色
print(image.map_rgb((0, 0, 0, 255))) # 黑色
print(image.map_rgb((0, 0, 0, 0))) # 透明黑色
print("_____________")
print(image.map_rgb((0, 0, 0, 16))) # 黑色
print(image.map_rgb((0, 0, 0, 32))) # 黑色
print(image.map_rgb((0, 0, 0, 48))) # 黑色
print(image.map_rgb((0, 0, 0, 64))) # 黑色
print(image.map_rgb((0, 0, 0, 80))) # 黑色
print(image.map_rgb((0, 0, 0, 96))) # 黑色
print(image.map_rgb((0, 0, 0, 112))) # 黑色
print(image.map_rgb((0, 0, 0, 128))) # 黑色
print(image.map_rgb((0, 0, 0, 144))) # 黑色
print(image.map_rgb((0, 0, 0, 160))) # 黑色
print(image.map_rgb((0, 0, 0, 176))) # 黑色
print(image.map_rgb((0, 0, 0, 192))) # 黑色
print(image.map_rgb((0, 0, 0, 208))) # 黑色
print(image.map_rgb((0, 0, 0, 224))) # 黑色
print(image.map_rgb((0, 0, 0, 240))) # 黑色
print("_____________")
print(image.map_rgb((255, 255, 255, 255))) # 白色
pxarray = pygame.PixelArray(image)
pxarray.replace(-65536,-234) # 把所有红色换成黄色
pxarray.replace(-16777216,-234) # 把所有黑色换成黄色
pxarray.replace(-1,-234) # 把所有白色换成黄色
# 如何改变全部黑色像素的透明度为0
pxarray.close()
screen.blit(image,(0,0))
pygame.display.update()
while not any(pygame.key.get_pressed()):
pygame.event.pump()
pygame.time.delay(100)
pygame.quit()