1

青い背景に赤いボールの画像を BMP ファイルとして保存しています。画像で使用されている色は、赤 (255, 0, 0) と青 (0, 0, 255) の 2 つだけです。問題を切り分けるために、次の Pygame テスト プログラムを作成しました。単純に画像をロードし、左上のピクセルの色を透明色として設定し、それを画面にブリットします。それは可能な限り単純ですが、私はそれを機能させることができません。

import pygame

if __name__ == "__main__":
    pygame.init()
    size = (640, 400)
    screenSurface = pygame.display.set_mode(size)

    ballSurface = pygame.image.load("ball.bmp")

    transparentColor = ballSurface.get_at((0, 0))
    ballSurface.set_colorkey(transparentColor)

    screenSurface.blit(ballSurface, ballSurface.get_rect())
    pygame.display.update()

    pygame.time.wait(30000)

各色を手動で渡そうとしましset_colorkey()たが、役に立ちませんでした。私は何を間違っていますか?助けてくれてありがとう!

4

2 に答える 2

2

うーん!本当に長い間これをいじった後、私はついにそれを理解しました。私がしなければならなかったのは、に変更load(...)することだけでしたload(...).convert()!今、私の髪はすべて引き裂かれています。

于 2013-07-29T01:46:55.443 に答える
0
import pygame

if __name__ == "__main__":
    pygame.init()
    size = (640, 400)
    screenSurface = pygame.display.set_mode(size)

    ballSurface = pygame.image.load("ball.bmp")

//You need to loop through each pixel.

    for each x in range (0, 640)
        for each y in range (o, 400)

            pixel =getPixel (x,y)

//algorithm follows
//get each pixel
//find it's color
//change the individual color of each pixel

    transparentColor = ballSurface.get_at((0, 0))
    pixel.set_colorkey(transparentColor)

    screenSurface.blit(ballSurface, ballSurface.get_rect())
    pygame.display.update()

    pygame.time.wait(30000)
于 2013-07-29T01:45:04.427 に答える