首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Pygame中,为什么我无法使图像的一部分变得透明?

在Pygame中,为什么我无法使图像的一部分变得透明?
EN

Stack Overflow用户
提问于 2013-07-29 09:33:07
回答 2查看 121关注 0票数 1

我有一个蓝色背景上的红色球的图像另存为BMP文件。图像中只使用了两种颜色:红色(255,0,0)和蓝色(0,0,255)。我写了下面的Pygame测试程序来隔离这个问题。它只是加载一个图像,将左上角像素的颜色设置为透明颜色,然后将其显示在屏幕上。它很简单,但我不能让它工作。

代码语言:javascript
代码运行次数:0
运行
复制
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()中,但都无济于事。我做错了什么?谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2013-07-29 09:46:55

啊!在纠结了很长一段时间之后,我终于弄明白了。我所要做的就是把load(...)改成load(...).convert()!现在我的头发都被扯掉了。

票数 2
EN

Stack Overflow用户

发布于 2013-07-29 09:45:04

代码语言:javascript
代码运行次数: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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17914793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档