鱼C论坛

 找回密码
 立即注册
查看: 1226|回复: 1

[技术交流] python如何绘制透明图像

[复制链接]
发表于 2021-8-10 00:12:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
纯属用于记录自己的学习笔记


import pygame

pygame.init()

#绘制好背景
screen = pygame.display.set_mode((800, 600))
bk = pygame.image.load("./桌面背景.png").convert()
bk_rect = bk.get_rect()
screen.blit(bk, bk_rect)

#加载乌龟图像
turtle = pygame.image.load("小甲鱼3.png")
t_rect = turtle.get_rect()

#创建一个空surface对象
target = pygame.Surface((400, 400)).convert()

# #把乌龟画在空对象上然后再把得到的对象画在背景上
# target.blit(turtle, t_rect)

#把空surface对象画在背景上
# screen.blit(target,(0, 0))     结论:没有像素数据的地方是黑色的

#把乌龟要出现的地方的背景画在空对象上
#这里我们想要乌龟出现在以背景图片为主图的(20, 30)坐标位置上
#我们用target.blit是以乌龟为主图,所以绘制的坐标应该是(-20, -30)
target.blit(bk, (-20, -30))
#绘制完以后我们就得到了一小个有背景的乌龟图像,现在我们只需要把图像放到相应位置上并做透明处理
#因为target是convert的,所以我们可以使用set_alpha方法直接把整张图片变透明
#你可能会有疑问,那么那一小部分背景不是也变透明了吗?对,但是跟没有透明的真实的背景重合以后效果就是没有透明的
target.blit(turtle, (0, 0))
target.set_alpha(230)
screen.blit(target, (20, 30))




pygame.display.update()

while True:

    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            print(event)

        if event.type == pygame.QUIT:
            pygame.quit()
            exit()


pygame.quit()


注释都是在跟自己对话
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-10 13:19:23 | 显示全部楼层
加油~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 15:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表