【pygame】pygame.transform

pygame.transform 对图片进行操作 用于改变surfaces形态的pygame模块

pygame.transform.flip - 垂直和水平翻转
pygame.transform.scale - 调整大小到新的分辨率
pygame.transform.rotate - 旋转图像
pygame.transform.rotozoom - 过滤的缩放和旋转
pygame.transform.scale2x - 专门的图像倍增器
pygame.transform.smoothscale - 平滑地将曲面缩放到任意大小
pygame.transform.get_smoothscale_backend - 返回正在使用的smoothscale过滤器版本:‘GENERIC’,‘MMX’或’SSE’
pygame.transform.set_smoothscale_backend - 将smoothscale过滤器版本设置为以下之一:‘GENERIC’,‘MMX’或’SSE’
pygame.transform.chop - 获取移除的内部区域的图像副本
pygame.transform.laplacian - 在surface中查找边
pygame.transform.average_surfaces - 从许多surface中找到平均surface。
pygame.transform.average_color - 查找surface的平均颜色
pygame.transform.threshold - 查找表面中的哪些像素以及多少像 在’search_color’或’search_surf’的阈值内。

surface变换是移动像素或调整像素大小的操作。 所有这些函数都使用Surface进行操作并返回带有结果的新Surface
一些变换被认为是破坏性的。 这意味着每次执行它们都会丢失像素数据。 常见的例子是调整大小和旋转。 因此,重新转换原始surface比保持多次转换图像更好。

pygame.transform.flip() 垂直和水平翻转

flip(Surface, xbool, ybool) -> Surface
这可以通过垂直,水平或两者一起来翻转Surface。 翻转Surface是非破坏性的,并返回具有相同尺寸的新曲面。

pygame.transform.scale() 调整大小到新的分辨率

scale(Surface, (width, height), DestSurface = None) -> Surface
将Surface的大小调整为新分辨率。 这是一种快速扩展操作,不会对结果进行采样。
可以使用可选的目标Surface,而不是创建新的目标Surface。 如果你想反复缩放某些东西,这会更快。 但是,目标必须与传入的(width, height)大小相同。目标Surface也必须是相同的格式。

pygame.transform.rotate() 旋转图像

rotate(Surface, angle) -> Surface
未经过滤的逆时针旋转。 angle参数表示角度,可以是任何浮点值。 负角度量将顺时针旋转。
除非以90度的增量旋转,否则图像将被填充得更大以保持新的尺寸。 如果图像具有像素alpha,则填充区域将是透明的。 否则,pygame将选择与Surface颜色键(colorkey)或左上角像素值匹配的颜色。

pygame.transform.rotozoom() 过滤的缩放和旋转

rotozoom(Surface, angle, scale) -> Surface
这是组合的缩放和旋转变换。 生成的Surface将是一个过滤的32位Surface。 scale参数是一个浮点值,将乘以当前分辨率。 角度参数是一个浮点值,表示要旋转的逆时针度数。 负旋转角度将顺时针旋转。

pygame.transform.scale2x() 专门的图像倍增器

scale2x(Surface, DestSurface = None) -> Surface
这将返回一个原始尺寸的两倍的新图像。 它使用AdvanceMAME Scale2X算法,该算法可以实现“无瑕疵”的位图图形缩放。
这实际上只对纯色的简单图像产生影响。 在摄影和抗锯齿图像上,它看起来像一个普通的未过滤的尺度。
可以使用可选的目标surface,而不是创建新的目标surface。 如果你想反复缩放某些东西,这会更快。 但是,目标必须是传入的源surface大小的两倍。目标surface也必须是相同的格式。

pygame.transform.smoothscale() 平滑地将曲面缩放到任意大小

smoothscale(Surface, (width, height), DestSurface = None) -> Surface
使用两种不同算法中的一种来根据需要缩放输入surface的每个维度。 对于收缩,输出像素是它们覆盖的颜色的面积平均值。 对于扩展,使用双线性滤波器。 对于x86-64和i686架构,包含优化的MMX程序,运行速度比其他机器类型快得多。 大小是(width, height)的2个数字序列。 此函数仅适用于24位或32位surface。 如果输入表面位深度小于24,则抛出异常。

pygame.transform.get_smoothscale_backend() 返回正在使用的smoothscale过滤器版

本:‘GENERIC’,‘MMX’或’SSE’
get_smoothscale_backend() -> String
显示smoothscale是否使用MMX或SSE加速。 如果没有可用的加速,则返回“GENERIC”。 对于x86处理器,要使用的加速级别在运行时确定。
该函数用于pygame测试和调试。

pygame.transform.set_smoothscale_backend()

将smoothscale过滤器版本设置为以下之一:‘GENERIC’,‘MMX’或’SSE’
set_smoothscale_backend(type) -> None
设置smoothscale加速。 采用字符串参数。 'GENERIC’的值会关闭加速。 'MMX’仅使用MMX指令。 'SSE’也允许SSE扩展。 如果当前处理器无法识别或不支持类型,则会引发值错误。
该函数用于pygame测试和调试。 如果smoothscale导致无效的指令错误,那么应该报告pygame / SDL错误。 仅将此函数用作临时修复。

pygame.transform.chop() 获取移除的内部区域的图像副本

chop(Surface, rect) -> Surface
提取图像的一部分。 围绕给定矩形区域的所有垂直和水平像素都被移除。 然后将角落区域(与矩形对角线)放在一起。 (此操作不会更改原始图像。)
注意:如果您想要一个“crop(裁剪)”返回矩形内图像的一部分,您可以使用矩形blit到新surface或复制子surface。
搜索pygame.transform.chop的示例

pygame.transform.laplacian() 在surface中查找边

laplacian(Surface, DestSurface = None) -> Surface
使用拉普拉斯算法查找曲面中的边。

pygame.transform.average_surfaces() 从许多surface中找到平均surface

average_surfaces(Surfaces, DestSurface = None, palette_colors = 1) -> Surface
采用一系列surfaces并返回具有每个surface的平均颜色的曲面。

palette_colors - 如果为true,我们将平均调色板中的颜色,否则我们平均像素值。 如果surfacec是灰度颜色而不是调色板颜色,则此选项非常有用。
注意,此函数目前不能正确使用surface处理调色板。
新的pygame 1.8 palette_colors参数在pygame 1.9中新增了
搜索pygame.transform.average_surfaces的示例

pygame.transform.average_color() 查找surface的平均颜色

average_color(Surface, Rect = None) -> Color
查找surface的平均颜色或由Rect指定的曲面区域,并将其作为颜色返回。
搜索pygame.transform.average_color的示例

pygame.transform.threshold() 查找表面中的哪些像素以及多少像素

在’search_color’或’search_surf’的阈值内。
threshold(dest_surf, surf, search_color, threshold=(0,0,0,0), set_color=(0,0,0,0), set_behavior=1, search_surf=None, inverse_set=False) -> num_threshold_pixels
这种多功能的函数可用于在’search_color’附近的’surf’中查找颜色,或在单独的’search_surf’中接近颜色。
它还可用于将像素传输到匹配或不匹配的“dest_surf”。
默认情况下,它会在’dest_surf’中设置像素,其中所有不在阈值范围内的像素都会更改为set_color。 如果inverse_set可选地设置为True,则阈值内的像素将更改为set_color。
如果给出了可选的’search_surf’表面,则它用于阈值而不是指定的’set_color’。 也就是说,它将在“search_surf”的同一坐标下,在像素的“threshold”内找到“surf”中的每个像素。
参数:(这里还有一些复杂的东西,查看原网址)
(1)dest_surf(pygame.Surface对象或None) - 正在改变的surface。请参阅’set_behavior’。如果正在计数(set_behavior为0),则应为None。
(2)surf(pygame.Surface对象) - 正在看的表面。
(3)search_color(pygame.Color对象) - 正在搜索的颜色。
(4)threshold(pygame.Color对象) - 距离search_color(或search_surf)这一距离。您可以使用阈值(r,g,b,a),其中r,g,b可以具有不同的阈值。因此,如果您愿意,可以使用r阈值40和蓝色阈值2。
(5)set_color(pygame.Color对象或None) - 我们在dest_surf中设置的颜色。
(6)set_behavior(int) -
set_behavior = 1(默认值)。 dest_surface中的像素将更改为“set_color”。
set_behavior = 0我们不改变’dest_surf’,仅仅计算。使dest_surf = None。
set_behavior =2 ‘dest_surf’中设置的像素将来自’surf’。
(7)search_surf(pygame.Surface对象或None) -
search_surf =None(默认)。搜索“search_color”取而代之。
search_surf =Surface。查看’search_surf’中的颜色,而不是使用’search_color’。
(8)inverse_set(bool) - 默认是False。超出阈值的像素被改变。True,阈值内的像素会发生变化。

return int
类型:
返回:与’search_color’或search_surf相比,'surf’中’threshold’内的像素数。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值