2025-03-10 03:10:22 +08:00

63 lines
1.8 KiB
Python

from PIL import Image
import pygame
import sys
import time
colorzone = dict()
def img():
# 打开 BMP 文件
bmp_image = Image.open('view.bmp')
# 获取图像的基本信息
width, height = bmp_image.size
mode = bmp_image.mode
print(f"图像宽度: {width}, 高度: {height}, 模式: {mode}")
# 读取图像数据
pixel_data = bmp_image.load() # 获取像素数据
# 遍历每个像素并打印其 RGB 值
minleft = 0x3f3f3f3f
mintop = 0x3f3f3f3f
for y in range(height):
for x in range(width):
minleft = min(minleft, x)
mintop = min(mintop, y)
r, g, b = pixel_data[x, y] # 获取每个像素的 RGB 值
if r == 255 and b == 255 and g == 255:
pass
else:
if (r,g,b) in colorzone:
colorzone[(r,g,b)].append(((x//8)*4,(y//8)*4))
else:
colorzone[(r,g,b)] = list()
colorzone[(r,g,b)].append((x//8*4,y//8*4))
#print(f"像素 ({x}, {y}): R={r}, G={g}, B={b}")
colorzone[(255,255,255)] = colorzone[(0,0,0)]
# 关闭图像
bmp_image.close()
def grap():
pygame.init()
width, height = 800, 1000
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption("TEST")
global colorzone
while True:
for i in colorzone.keys():
for j in colorzone[i]:
if i != (255,255,255):
pygame.draw.rect(screen, i, (j[0], j[1], 2, 2)) # 远程波形
else:
pygame.draw.rect(screen, i, (j[0], j[1], 1, 1)) # 远程波形
pygame.display.flip()
pygame.time.delay(10)
if __name__ == "__main__":
print("START")
img()
print("LOADED")
grap()