新闻动态

Pygame Transform图像变形的实现示例

发布日期:2021-12-10 05:14 | 文章来源:源码之家

pygame.transform 模块允许您对加载、创建后的图像进行一系列操作,比如调整图像大小、旋转图片等操作,常用方法如下所示:

下面看一组简单的演示示例:

import pygame
#引入pygame中所有常量,比如 QUIT
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((500,250))
pygame.display.set_caption('c语言中文网')
#加载一张图片(455*191)
image_surface = pygame.image.load("C:/Users/Administrator/Desktop/c-net.png").convert()
image_new = pygame.transform.scale(image_surface,(300,300))
# 查看新生成的图片的对象类型
#print(type(image_new))
# 对新生成的图像进行旋转至45度
image_1 =pygame.transform.rotate(image_new,45)
# 使用rotozoom() 旋转 0 度,将图像缩小0.5倍
image_2 = pygame.transform.rotozoom(image_1,0,0.5)
while True:
 for event in pygame.event.get():
  if event.type == QUIT:
exit()
 # 将最后生成的image_2添加到显示屏幕上
 screen.blit(image_2,(0,0))
 pygame.display.update()

实现示例

import pygame
pygame.init()
screen = pygame.display.set_mode((960, 600))
pygame.display.set_caption("图像变换")
img = pygame.image.load('马.jpg')
clock = pygame.time.Clock()
img1=pygame.transform.flip(img,False, True)  #图像进行水平和垂直翻转
#参数1:要翻转的图像
#参数2:水平是否翻转
#参数3:垂直是否翻转
#返回一个新图像
while True:
 t = clock.tick(60)
 for event in pygame.event.get():
  if event.type == pygame.QUIT:
exit()
 screen.blit(img1,(100,50))
 pygame.display.update()
img1 = pygame.transform.scale(img, (200, 100))  #缩放
#参数2:新图像的宽高
img1 = pygame.transform.smoothscale(img,(400,300))  #平滑缩放图像
#此函数仅适用于24位或32位surface。 如果输入表面位深度小于24,则抛出异常
img1 = pygame.transform.scale2x(img)  #快速的两倍大小的放大
img = pygame.image.load('马.jpg')
img1 = pygame.transform.rotate(img, 30)  #旋转图像
#参数2:要旋转的角度--正数表示逆时针--负数表示顺时针
#除非以90度的增量旋转,否则图像将被填充得更大的尺寸。 如果图像具有像素alpha,则填充区域将是透明的
#旋转是围绕中心
img1 = pygame.transform.rotozoom(img, 30.0, 2.0)  #缩放+旋转
#第一个参数指定要处理的图像,第二个参数指定旋转的角度数,第三个参数指定缩放的比例
#这个函数会对图像进行滤波处理,图像效果会更好,但是速度会慢很多
img1 = pygame.transform.chop(img, (0, 0, 100, 50))  #对图像进行裁减
#第一个参数指定要裁减的图像,第二个参数指定要保留的图像的区域
img = pygame.image.load('马.jpg')
img1 = pygame.transform.laplacian(img)  #查找边--轮廓

以上就是Pygame Transform图像变形的实现示例的详细内容,更多关于Pygame Transform图像变形的资料请关注本站其它相关文章!

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部