python快速实现简单的图片透明化

2023-12-17

整张图片透明化的完整代码如下:

import os
import glob
from PIL import Image

def convert_to_transparent(image_path, output_folder):
    image = Image.open(image_path)
    image = image.convert("RGBA")

    data = image.getdata()

    new_data = []
    for item in data:
        # 将背景颜色(不是透明的像素)替换为透明背景(RGBA值为原始RGB值 + 透明度为0)
        if item[3] != 0:
            new_data.append(item[:3] + (0,))
        else:
            new_data.append(item)

    image.putdata(new_data)
    output_path = os.path.join(output_folder, os.path.basename(image_path))
    image.save(output_path, "PNG")
    print(f"{output_path} 转换完成!")

def convert_folder_images(input_folder, output_folder):
    # 获取文件夹下所有jpg和png格式的图片
    image_paths = glob.glob(os.path.join(input_folder, "*.jpg")) + glob.glob(os.path.join(input_folder, "*.png"))

    for image_path in image_paths:
        convert_to_transparent(image_path, output_folder)

# 使用示例
input_folder = r"E:\img"
output_folder = r"E:\img1"
if not os.path.exists(output_folder):
    os.makedirs(output_folder)
convert_folder_images(input_folder, output_folder)

对黑色和白色背景进行透明化:

import os
import glob
from PIL import Image

def convert_to_transparent(image_path, output_folder):
    image = Image.open(image_path)
    image = image.convert("RGBA")

    data = image.getdata()

    new_data = []
    for item in data:
        # 将白色和黑色背景替换为透明背景(RGBA值为原始RGB值 + 透明度为0)
        if item[0] == 0 and item[1] == 0 and item[2] == 0:
            new_data.append(item[:3] + (0,))
        elif item[0] == 255 and item[1] == 255 and item[2] == 255:
            new_data.append(item[:3] + (0,))
        else:
            new_data.append(item[:3] + (255,))

    image.putdata(new_data)
    output_path = os.path.join(output_folder, os.path.basename(image_path))
    image.save(output_path, "PNG")
    print(f"{output_path} 转换完成!")

def convert_folder_images(input_folder, output_folder):
    # 获取文件夹下所有jpg和png格式的图片
    image_paths = glob.glob(os.path.join(input_folder, "*.jpg")) + glob.glob(os.path.join(input_folder, "*.png"))

    for image_path in image_paths:
        convert_to_transparent(image_path, output_folder)

# 使用示例
input_folder = r"E:\img"
output_folder = r"E:\img1"
if not os.path.exists(output_folder):
    os.makedirs(output_folder)
convert_folder_images(input_folder, output_folder)

效果:

原始图:

全透明化之后在文件夹中的显示效果:

背景透明化之后在文件夹中的显示效果:

全透明化后查看图片的显示效果:

背景透明化查看图片的显示效果:

用做QQ头像的显示效果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python快速实现简单的图片透明化 的相关文章

  • 处理大数据表时应该如何使用Hibernate Mapping

    问题定义 我有一个包含大量数据 超过 100 000 行 的数据库表 表结构如下 AppID DocID DocStatus 1 100 0 1 101 1 2 200 0 2 300 1 每个 applicationID 可能有数千个文档
  • 阻止 GWT 中的事件冒泡

    我有以下代码片段 changeTextArea 是一个 TextArea 对象 changeTextArea addKeyboardListener new KeyboardListenerAdapter public void onKey
  • 如何在Java中实现复合模式?

    我想实现一个复合模式Java以便绘制软件开发组织图 因此 我们假设有多个项目经理和多个开发人员 每个开发人员都被分配给一位项目经理 并且每个开发人员都能够使用各种编程语言进行编码 项目经理领导开发人员并准确了解他们的工作量 我对这个设计模式
  • 如何在pandas中分组后从每组中选择前n行? [复制]

    这个问题在这里已经有答案了 我有一个具有以下形状的 pandas 数据框 open year open month type col1 col2 我想找到每个 年 月 中的顶级类型 所以我首先找到每个 年 月 中每种类型的计数 freq d
  • Windows:如何获取所有可见窗口的列表?

    无论如何都要使用相关技术重新标记 我不知道它们是什么 稍后我可能会提出更详细的问题 关于具体细节 但现在我正在尝试掌握 大局 我正在寻找一种方法来枚举 Windows 上的 真实可见窗口 我所说的 真正可见的窗口 就是指 用户所说的 窗口
  • 优化两个三位数乘积的最大回文数?

    我正在研究一个面试问题 我被问到这个问题 我应该编写一个程序 从两个三位数的乘积中找到最大的回文数 这里是question https projecteuler net problem 4 我想出了这种从底部开始的蛮力方法 public c
  • 将日期(系列)列从一个 DataFrame 添加到其他 Pandas,Python

    我正在尝试将日期列从 df1 广播 到 df2 在 df1 中 我有所有用户的姓名及其基本信息 在 df2 中 我有一个用户购买的列表 df1 和 df2 代码 https i stack imgur com sN0uJ png 假设我有一
  • 计算事件之间的天数 - Android

    我一直在研究 Android API 并一直在寻找一种方法来计算当前日期和未来日期之间的天数 我对 android 还很陌生 而且我已经有几年没有做过 java 了 计算这个最简单的方法是什么 Thanks 最简单的方法是使用乔达时间 ht
  • 在视图之间共享并在 AppConfig 中初始化的变量

    我想要一个在应用程序启动时初始化的变量 并且可以从视图访问该变量 my app my config py class WebConfig AppConfig name verbose name def ready self print lo
  • 使用Python构建caffe(找不到-lboost_python3)

    我正在尝试用 python 构建 caffe 但它一直这样说 CXX LD o python caffe caffe so python caffe caffe cpp usr bin ld cannot find lboost pytho
  • SSLHandShakeException 没有适当的协议

    我最近向我的网站添加了 SSL 可以通过 https 访问它 现在 当我的 java 应用程序尝试向我的网站发出请求并使用缓冲读取器从中读取时 它会生成此堆栈跟踪 我没有使用自签名证书 该证书来自 Namecheap 它使用 COMODO
  • startDrag 方法 已弃用且无法编译程序

    startDrag android content ClipData android view View DragShadowBuilder java lang Object int 已弃用 如何解决这个问题而又不失去对旧版本的兼容性 还有
  • 如何使用Python3.4在tornado中进行异步mysql操作?

    我现在使用Python3 4 我想在Tornado中使用异步mysql客户端 我已经发现torndb https github com bdarnell torndb但在阅读其源代码后 我认为它无法进行异步mysql操作 因为它只是封装了M
  • 在 Python 中,如果我有 unix 时间戳,如何将其插入 MySQL 日期时间字段?

    我正在使用 Python MySQLDB 我想将其插入 Mysql 中的 DATETIME 字段 我该如何使用cursor execute 来做到这一点 要将 UNIX 时间戳转换为 Python 日期时间对象 请使用datetime fr
  • 使用 Python 3.x 基本获取 URL 的 HTML 正文

    我是Python新手 我对 Python 2 x 中的旧 urllib 和 urllib2 与 Python 3 中的新 urllib 之间的差异有点困惑 除此之外 我不确定数据在发送到 urlopen 之前何时需要编码 我一直在尝试使用
  • 加入语音频道(discord.py)

    当我尝试让我的机器人加入我的语音频道时 出现以下错误 await client join voice channel voice channel 产生错误的行 Traceback most recent call last File usr
  • Django中的自动递增值

    我在 django 中有一个表并尝试自动递增它的序列号 在自定义模板中 for 循环用于变量 自定义模板 for i in getodeskview tr td 1 td td i odesk id td td i hours td td
  • Java 和 SQL Server 中的精度噩梦

    我一直在与 Java 和 SQL Server 中的精确噩梦作斗争 直到我不再知道了 就我个人而言 我理解这个问题及其根本原因 但向地球另一端的客户解释这一点是不可行的 至少对我来说 情况是这样的 我在 SQL Server 中有两列 Qt
  • Python 单元测试:Nose 失败时重试?

    我有一个随机失败的测试 我想让它在发送错误消息之前重试多次 我将 python 与 Nose 一起使用 我写了以下内容 但不幸的是 即使使用 try except 处理 当第一次尝试测试失败时 Nose 也会返回错误 def test so
  • Python google云函数部署失败-Madmom pip包

    我正在尝试使用 madmom python pip 包部署 Python3 7 Google Cloud Function 但是指定madmom 0 16 1requirements txt 中的内容导致部署失败 当我从requiremen

随机推荐

  • yyy666

    6
  • Tekton 构建容器镜像

    Tekton 构建容器镜像 介绍如何使用 Tektonhub 官方 kaniko task 构建docker镜像 并推送到远程dockerhub镜像仓库 kaniko task yaml文件下载地址 https hub tekton dev
  • 目标检测YOLO实战应用案例100讲-自动驾驶复杂场景下目标检测(续)

    目录 3 2 YOLOv5框架的分析 3 3改进算法的基本思想 3 4改进聚类算法 3 5重构损失函数模型和NMS算法 lt
  • 008 Windows注册表

    一 注册表基础 1 概述 注册表 Registry 繁体中文版 Windows 操作系统称之为登录档案 是 Microsoft Windows 中的一个重要的数据库 用于 存储系统 和 应用程序 的设置信息 早在 Windows 3 0 推
  • 时序预测 | Python实现CNN电力需求预测

    时序预测 Python实现CNN电力需求预测 目录 时序预测 Python实现CNN电力需求预测 预测效果 基本描述 程序设计 参考资料
  • 海尔2024届秋招/校招内推信息/内推码

    公司名称 海尔 内推码 GHJ110 内推来源 内推鸭小程序 官方招聘网站 海尔招聘 海尔官方招聘网站
  • 每日一练2023.12.17——大笨钟的心情【PTA】

    题目链接 L1 077 大笨钟的心情 题目要求 有网友问 未来还会有更多大笨钟题吗 笨钟回复说 看心情 本题就请你替大笨钟写一个程序 根据心情自动输出回答 输入格式 输入在一行中给出 24 个 0 100 区间内的整数 依次代表大笨钟在一天
  • 挖矿木马应急响应-案例分析

    挖矿木马应急响应 案例分析 linux 终端无法使用系统资源使用异常高 首先解决linux命令无法使用的问题 显示libc so 6 没有重新连接一下libc文件 查看日志 发现木马运行成功后就日志一直报libc错误 根据信息向上插在日志
  • 2023年总结,讲讲我的故事吧,十年

    文章目录 2023 前十年 后十年 周末 本该是提升自己的最好时机 也该是出去玩的大好时光 但是毫无意外的 在家躺了一天 单纯的有点累 2023年 发生了好多事情 又好像没发生几件事 可能毕业季的我 走过了太多复杂的心路历程吧 身边的人 是
  • 服务器安全的威胁和防范

    由于服务器发挥着至关重要的作用 因此存储在服务器上的机密数据和信息非常具有价值 做好服务器安全至关重要 常见的服务器 安全隐患 包括 1 恶意的攻击 遭受CC攻击和DDoS攻击 导致游戏或是网站打不开 严重影响业务开展 2 网站挂马 网站被
  • 代码随想录算法训练营Day3 | 203.移除链表元素、707.设计链表、59.螺旋矩阵II

    LeetCode 203 移除链表元素 本题思路 就是常规的移除链表中的元素的操作 需要注意的点 头节点 head val val 的情况的处理 如果 head val val 就要继续往后 head head next 因此我们要遍历到第
  • 最强姿态模型 mmpose 使用实例

    mmpose 介绍 https blog csdn net jacke121 article details 135040186 图片姿态实例 本机地址 B project pose mmpose dev 1 x Copyright c O
  • Arrays.asList()方法:陷阱与解决之道

    在Java编程中 Arrays类提供了一系列用于操作数组的实用方法 其中 Arrays asList 方法是一个常用的方法 用于快速将数组转换为List集合 然而 这个方法存在一些潜在的陷阱 可能导致出现意外的行为 本文将介绍 Arrays
  • DSP捕获输入简单笔记

    程序 cap c Created on 2023年12月16日 Author My PC include cap h void cap init EALLOW SysCtrlRegs PCLKCR3 bit GPIOINENCLK 1 gp
  • 蓝禾2024届秋招/校招内推信息/内推码

    公司名称 蓝禾 内推码 SQDPVPM 内推来源 内推鸭小程序 官方招聘网站 https lanhevip jobs feishu cn index m position external referral code SQDPVPM
  • 007 Windows组策略

    组策略的应用 1 基本概念 组策略是一组策略的集合 组策略 英语 Group Policy 是 微软 Windows NT 家族操作系统的一个特性 它可以控制 用户帐户 和计算机帐户的工作环境 组策略提供了操作系统 应用程序 和 活动目录
  • 剑指 Offer(第2版)面试题 35:复杂链表的复制

    剑指 Offer 第2版 面试题 35 复杂链表的复制 剑指 Offer 第2版 面试题 35 复杂链表的复制 解法1 模拟 剑指 Offer 第2版 面试题 35 复杂链表的复制 题目来源 48 复杂链表的复刻 解法1 模拟 算法 复制原
  • mmpose 使用笔记

    目录 自己整理的可以跑通的代码 图片demo 检测加关键点 自己整理的可以跑通的代码 最强姿态模型 mmpose 使用实例 CSDN博客 图片demo python demo image demo py tests data coco 00
  • 2023“楚怡杯”湖南省赛“信息安全管理与评估“--数字取证调查(高职组)

    2023 楚怡杯 湖南省 信息安全管理与评估 高职组 任务书 2023 楚怡杯 湖南省 信息安全管理与评估 高职组 任务书 第一阶段竞赛项目试题 第二阶段竞赛项目试题 第二部分 数字取证调查 需
  • python快速实现简单的图片透明化

    整张图片透明化的完整代码如下 import os import glob from PIL import Image def convert to transparent image path output folder image Ima