【问题标题】:Pygame: Converting all white pixels to fully transparent in png imagePygame:将所有白色像素转换为png图像中的完全透明
【发布时间】:2012-12-30 01:15:42
【问题描述】:

我一直在尝试创建一个图像处理程序来获取加载图像中的所有白色像素 (255,255,255) 并将它们的 alpha 通道设置为 0(不透明),然后保存图像。

我一直在使用 Python 的 pygame 扩展来帮助我实现这一点,但到目前为止,我还没有找到一种简单的方法来完成我刚才描述的操作。

请记住,我不是在尝试显示图像,而是在尝试操纵它。

【问题讨论】:

标签: python image image-processing pygame alpha


【解决方案1】:

我也建议使用 PIL 或 ImageMagick,但这里有一种在 pygame 中执行的方法:

import pygame

def convert():    
    pygame.init()
    pygame.display.set_mode()
    image = pygame.image.load("triangle.png").convert_alpha()
    for x in range(image.get_width()):
        for y in range(image.get_height()):
            if image.get_at((x, y)) == (255, 255, 255, 255):
                image.set_at((x, y), (255, 255, 255, 0))
    pygame.image.save(image, "converted.png")

if __name__ == "__main__":
    convert()

以上适用于白色背景。下面是 triangle.pngconverted.png 使用洋红色而不是白色的外观,因此您可以看到区别:

使用 ImageMagick 实用程序,就像在命令行上运行它一样简单:

convert original.png -transparent white converted.png

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2016-07-13
    • 2015-10-21
    • 2011-06-04
    相关资源
    最近更新 更多