Pygameで画像処理9
グレースケールの改良版です。
人の目は緑に最も良く反応し、続いて赤、青という反応をします。
よって、このように重みをかけると、
自然なグレースケールになるわけです。
import pygame import math _gSrc = None def main(): pygame.init() pygame.display.set_mode((250, 250), 0, 32) pygame.display.set_caption("グレースケール2") _gScr = pygame.display.get_surface() tBuf = pygame.image.load("nyan.bmp").convert() for j in range(tBuf.get_height()): for i in range(tBuf.get_width()): rgba = tBuf.get_at((i, j)) gray = ( rgba[0] * 0.299 # r + rgba[1] * 0.587 # g + rgba[2] * 0.114 # b ) / 3 tBuf.set_at((i, j), (gray, gray, gray, 255)) while True: _gScr.blit(tBuf, (0, 0), tBuf.get_rect()) pygame.display.update() for e in pygame.event.get(): if e.type == pygame.QUIT: return pygame.time.wait(10) if __name__ == '__main__': main()