在Pygame中删除图像周围的边框

用户名

我在Pygame中有一些具有透明背景的表面。它们都一样大小。但是每个像素上都有一个不同大小的圆,因此该圆并不完全适合图像。以下是一些示例图像(我在Photoshop中拍摄了屏幕截图,因此您可以清楚地看到图像的透明度和大小):

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

现在,我要删除图像周围的透明边框,以使圆圈完全适合图像。我不希望表面是圆形的,我认为这是不可能的,但是我希望表面在左右两侧没有空白列,并且在顶部没有空白行和底部。想要的结果:

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

曲面上的圆每帧都会更改大小,因此我必须每帧重新计算新的曲面。

我已经用Google搜索了它,但是还没有找到适用于Pygame曲面的任何东西。我也尝试制作自己的函数,但是看起来很丑陋,而且更糟:帧速率从50(如果我不调用该函数)下降到30 fps(如果我确实调用了该函数)。我对其进行了一点测试,发现较小的圆圈比较大的圆圈需要更长的处理时间。我该怎么做,但是更快。如果您愿意,我可以展示我所做的功能。

表面对象有一个称为的方法get_bounding_rect,我们将从这里开始。该函数返回可能包含表面上所有非透明像素的最小矩形。

pixel_rect = image.get_bounding_rect()

有了这个矩形的大小,我们可以创建一个新的曲面:

trimmed_surface = pygame.Surface(pixel_rect.size)

现在将其中image包含的部分blitpixel_rect到上trimmed_surface

trimmed_surface.blit(image, (0,0), pixel_rect)

此时,trimmed_surface应该是与大小相同的表面pixel_rect,多余的透明行和列将从原始表面“修剪”掉。

Surface.get_bounding_rect的文档:http ://www.pygame.org/docs/ref/surface.html#Surface.get_bounding_rect

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除图像周围的边框?

来自分类Dev

如何删除边框周围的图像

来自分类Dev

在MATLAB中在图像周围绘制彩色边框?

来自分类Dev

在16.04中删除pavucontrol周围的灰色边框

来自分类Dev

图像周围的白色边框

来自分类Dev

删除图像周围的默认边框-Chrome浏览器

来自分类Dev

如何在移动视图中删除图像周围的白色边框?

来自分类Dev

如何在Blogger上删除图像周围的边框?

来自分类Dev

Xcode:如何删除标签和图像周围的这些蓝色边框?

来自分类Dev

图像上的链接显示Internet Explorer中图像周围的边框

来自分类Dev

删除Firefox中输入[type = color]中颜色周围的边框?

来自分类Dev

如何在opencv python中的图像周围添加边框

来自分类Dev

如何在IE 10中禁用图像周围的边框

来自分类Dev

如何在IE 10中禁用图像周围的边框

来自分类Dev

在PDFBox中制作PDF时图像周围的边框

来自分类Dev

html文档中单个图像周围的白色边框

来自分类Dev

尝试在Chrome中删除PayPal输入周围的边框

来自分类Dev

如何在iOS中删除UICollectionView周围的边框?

来自分类Dev

如何在WPF中删除LineGraph周围的边框?

来自分类Dev

尝试在Chrome中删除PayPal输入周围的边框

来自分类Dev

UIWebView中PDF周围的黑色边框,如何使用Swift删除

来自分类Dev

所选画廊图像周围的边框

来自分类Dev

删除div周围的白色边框

来自分类Dev

仅从图像链接中删除链接边框

来自分类Dev

仅从图像链接中删除链接边框

来自分类Dev

如何从Chrome的图像中删除边框?

来自分类Dev

如何使用python删除图像中人物周围的白色边框/边缘?

来自分类Dev

libGDX-在图像周围做边框

来自分类Dev

标签周围有图像的白色边框?

Related 相关文章

热门标签

归档