Pygame Transform图像变形的实现示例
作者:天子骄龙 发布时间:2022-03-04 03:39:29
标签:Pygame,Transform,图像变形
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) #查找边--轮廓
来源:https://www.cnblogs.com/liming19680104/p/13223908.html


猜你喜欢
- 基于 SpringBoot与SpringSecurity整合 案例的修改:数据库 user 表注,密码是由 BCrypt 算法加密对应用户名
- 网上广泛流传的取 object 的绝对位置的做法是:var getAbsPos = function(pTar
- 下面一段代码给大家分享js实现时钟滴答声功能,具体代码如下所示:<!DOCTYPE html><html> <
- 在html 5增加了新元素header、footer,测试过发现IE不能解析html 5新增的元素。代码如下:<!DOCTYPE&nb
- ueditor是百度编辑器,在本地的iis环境是可以上传图片了,但放在服务器的iis环境无法上传图片了,经过搜索发现是iis设置问题,引起这
- 问题描述我在用Keras的Embedding层做nlp相关的实现时,发现了一个神奇的问题,先上代码:a = Input(shape=[15]
- 特么的,上次写了一堆,发现,原来下载网易云的歌曲根本不用这么费劲,直接用!http://music.163.com/song/media/o
- 很多程序员无论是新手还是老的程序员都避免不了关于JS刷新页面的相关内容,在本文中我们整理了asp之家总结的关于JS页面刷新的相关重要知识点文
- create table test3(id int primary key not null identity(1,1),uname var
- 文件提交页面既已生成,下面任务就很明确了:将提交的文件内容保存到服务器上。 下面我们用两种方法来实现这个功能: 1. 用 PHP 来保存:
- 列表(list)和元组(tuple)的一些基础list和tuple都是一个可以放置任意数据类型的有序集合,都是既可以存放数字、字符串、对象等
- 在 MySQL 中,数据库和表对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在
- 一、功能说明:1. 多线程方式抓取代理服务器,并多线程验证代理服务器ps 代理服务器是从http://www.cnproxy.com/ (测
- 首先让我们首先看一个例子。我们知道在*NIX下面,uname命令是查看系统的发行版。可以写这样一个Fabric脚本:from fabric.
- 遍历字典: keys() 、values() 、items()1. xxx.keys() : 返回字典的所有的key 返回一个序列,序列中保
- 目录原理先行实践篇完整代码原理先行作为一个资深的小说爱好者,国内很多小说网站如出一辙,什么 🖊*阁啊等等,大都是 get 请求返回 html
- order by 是怎么工作的?表定义CREATE TABLE `t1` ( `id` int(11) NOT NULL, &n
- 分析慢查询1.查看慢SQL是否启用,查看命令:show variables like 'log_slow_queries';
- 1. 引言在某些场景下,我们不仅需要进行实时人脸检测追踪,还要进行再加工;这里进行摄像头实时人脸检测,并对于实时检测的人脸进行初步提取;单个
- Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将