"""
pygame的8位深图图与调色板研究
pygame.surfarray.make_surface能转换一个2D阵列到一个8位深的表面。
如果是3D阵列,那么就转换为32位深的表面。
位深代表能显示的颜色数量,8位深的图能显示265种颜色。这个时候的数值是从0到255,
但0到255的数值不代表一种颜色,而是代表一种颜色的索引号。
Pygame不会存储具体的RGBA三元组值在内存中,而是存储一个整数。
如果是大于8位深的图,那么这个整数可以解码成具体的RGBA值。
如果是8位深的图,通过内置的调色板让每个整数对应一个RGBA值,
这个调色板能通过surface.get_palette()获取,也可以通过命令
surface.set_palette()设置调色板。
"""
import pygame
width,height = 200,200
screen = pygame.display.set_mode((width,height))
# 8位深只支持256种颜色,下面把从0到99行列的像素设为:128,122,0这种颜色
# 而实际显示的是170,109,0这种调色板上的颜色
s = pygame.Surface((width,height),depth=8)
for x in range(100):
for y in range(100):
s.set_at((x,y),(128,122,0,255))
print("8位深的调色板",s.get_palette())
screen.blit(s,(0,0))
需要浏览更多吗?
成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)
-
- 2026 年 3 月
- 2026 年 2 月
- 2026 年 1 月
- 2025 年 12 月
- 2025 年 11 月
- 2025 年 10 月
- 2025 年 9 月
- 2025 年 6 月
- 2025 年 5 月
- 2025 年 3 月
- 2025 年 2 月
- 2025 年 1 月
- 2024 年 12 月
- 2024 年 8 月
- 2024 年 6 月
- 2024 年 5 月
- 2024 年 4 月
- 2024 年 3 月
- 2024 年 2 月
- 2023 年 11 月
- 2023 年 9 月
- 2023 年 6 月
- 2023 年 5 月
- 2023 年 4 月
- 2023 年 3 月
- 2023 年 2 月
- 2023 年 1 月
- 2022 年 12 月
- 2022 年 11 月
- 2022 年 10 月
- 2022 年 9 月
- 2022 年 8 月
- 2022 年 7 月
- 2022 年 6 月
- 2022 年 5 月
- 2022 年 4 月
- 2022 年 3 月
- 2022 年 2 月
- 2022 年 1 月
- 2021 年 12 月
- 2021 年 11 月
- 2021 年 10 月
- 2021 年 9 月
- 2021 年 8 月
- 2021 年 7 月
- 2021 年 6 月
- 2021 年 5 月
- 2021 年 4 月
- 2021 年 3 月
- 2021 年 2 月
- 2021 年 1 月
- 2020 年 12 月
- 2020 年 11 月
- 2020 年 10 月
- 2020 年 9 月
- 2020 年 8 月
- 2020 年 7 月
- 2020 年 6 月
- 2020 年 5 月
- 2020 年 4 月
- 2020 年 3 月
- 2020 年 2 月
- 2020 年 1 月
- 2019 年 12 月
- 2019 年 11 月
- 2019 年 10 月
- 2019 年 9 月
- 2019 年 8 月
- 2019 年 7 月
- 2019 年 6 月
- 2019 年 5 月
- 2019 年 4 月
- 2019 年 3 月
- 2019 年 2 月
- 2018 年 3 月
- 2018 年 1 月
- 2017 年 9 月
- 2017 年 5 月
- 2017 年 1 月
