Pygame(十四)图像变换

Pygame(十四)图像变换

前情提要

image.png

本节提要

本节提要

前言

上一节我们学习了如何从文件加载图像到pygame中以便我们将游戏做的更加精致,更加受人喜欢.
但是有些时候,我们可能需要对文件加载进来的图片进行一些处理,以达到更好的效果.
比如,我们在制作人物运动的时候,朝左走的人和朝右走的人是左右镜像的.如果我们还是用两个文件的图片的话,就会造成资源的浪费.
不仅浪费有限的存储空间,还浪费人力,物力去准备这双重的资源.如果我们能够实现这样的镜象效果,就可以达成以上的节省目标.

内容详情

翻转

翻转分左右翻转与上下翻转
两两组合可以实现以下几种:

  • 不翻转
  • 左右翻转
  • 上下翻转
  • 上下左右都翻转
new_img = pygame.transform.flip(old_img, xbool, ybool)

参数说明:

  • old_img:待翻转的surfcae对象
  • xbool:是否左右(水平)翻转, True:翻转, False:不翻转
  • ybool:是否上下(垂直)翻转,True:翻转, False:不翻转
    –>产生一个新的surface对象

示例:

  1. 不翻转
def flip():
    '''翻转'''
    pygame.init()
    screen = pygame.display.set_mode((800, 600))
    pygame.display.set_caption("图像变换")

    img = pygame.image.load("img.jpg").convert()  # 原图
    none_flip_img = pygame.transform.flip(img, False, False)  # 不翻转的图
    width = img.get_width()  # 获取img的宽        height = img.get_height() # 获取img的高

    screen.blit(img, (0, 0))  # 绘制原图
    screen.blit(none_flip_img, (width, 0))  # 绘制新图
    pygame.display.update()

    while 1:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

image.png

  1. 左右翻转
def flip():
    '''翻转'''
    pygame.init()
    screen = pygame.display.set_mode((800, 600))
    pygame.display.set_caption("图像变换")

    img = pygame.image.load("img.jpg").convert()  # 原图
    none_flip_img = pygame.transform.flip(img, False, False)  # 不翻转的图
    x_flip_img = pygame.transform.flip(img, True, False)  # 左右翻
    width = img.get_width()  # 获取img的宽度

    screen.blit
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程的章老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值