首页 > 其他分享 >如何批量给png透明图片添加白色描边

如何批量给png透明图片添加白色描边

时间:2024-12-24 14:54:17浏览次数:6  
标签:RGBA 批量 image mask 描边 path border png size

`from PIL import Image, ImageOps, ImageFilter
import os

def add_border_to_image(image_path, output_path, border_size=2):
# 打开图片
image = Image.open(image_path)
# 确保图片是RGBA模式(带有透明通道)
if image.mode != 'RGBA':
image = image.convert('RGBA')

# 创建一个滤镜,用于找到边缘
mask = image.split()[-1]  # 获取透明通道作为mask
edge_mask = mask.filter(ImageFilter.FIND_EDGES)
dilated_mask = edge_mask.filter(ImageFilter.MaxFilter(size=border_size * 2 + 1))  # 扩大边缘区域

# 创建一个全透明的背景图片
border_image = Image.new('RGBA', image.size, (0, 0, 0, 0))
# 在边缘区域应用白色
border = Image.new('RGBA', image.size, (255, 255, 255, 255))
border_image.paste(border, mask=dilated_mask)

# 将原始图片粘贴到带有白色边缘的背景上
final_image = Image.alpha_composite(border_image, image)

# 保存图片
final_image.save(output_path)

使用方法

for root, dirs, files in os.walk('.'):
for file in files:
# 检查文件的扩展名
filename, ext = os.path.splitext(file)
if ext.lower() == '.png':
# 如果文件是PNG图片,那么给它添加描边
input_image_path = os.path.join(root, file)
output_image_path = os.path.join(root, filename + '_border' + ext)
add_border_to_image(input_image_path, output_image_path, 2)
`

标签:RGBA,批量,image,mask,描边,path,border,png,size
From: https://www.cnblogs.com/donkey9/p/18627440

相关文章

  • 站在巨人的肩膀上开发 — Toutatis 批量获取 Instagram 数据更新数据库
    对爬虫不是很熟悉,电商平台数据库里沉淀了一批博主的基本信息(包括主页链接)分别来自Instagram,TikTok和YouTube,但博主的粉丝量会增长,如何保持博主粉丝的实时更新就是一个问题,TikTok和YouTube的博主比较好解决,直接访问该博主的主页链接即可获取该博主的粉丝数量,但Instagram比较......
  • Qt编写机器码秘钥控制/日期防篡改/离线使用/硬件标识/运行时间/数量控制/批量更新秘钥
    一、前言说明搞软件开发一直追求精益求精的目标,从第一版的秘钥生成器到今天这个版本,经历了十年的时间,最初的版本做的非常简陋,就是搞了个异或加密,控制运行时间,后面又增加设备数量的控制,然后就是到期时间的限制。这种有个巨大缺陷就是可复制性,如果将授权的秘钥文件,拷贝到其他电脑也......
  • 【全栈开发】----用pymysql库连接MySQL,批量存入
    本文基于前面的MySQL基础语句使用,还不会的宝子可以先回去看看:全栈开发----Mysql基本配置与使用-CSDN博客        仅仅用控制台命令对数据库进行操作,虽然大部分操作都很简单,但对于大量数据的存入,存储数据将会变得很繁琐,有没有什么简单点的方式呢?有的有的,python的pym......
  • 论文引用 | 如何将正文引用批量设置上标?
    本方法适用对象:请注意,本方法针对下图所示论文引用格式:①外部:半角中括号②内部:数字,数字与半角逗号的组合,数字与连接符号的组合,数字、半角逗号与连接符号的组合主要步骤:1.打开高级查找2.在查找内容中输入\[[0-9,-]{1,}\],并勾选搜索选项中的“使用通配符”3.......
  • 引用 | 如何将正文引用批量设置上标?
    本方法适用对象:请注意,本方法针对下图所示论文引用格式:①外部:半角中括号②内部:数字,数字与半角逗号的组合,数字与连接符号的组合,数字、半角逗号与连接符号的组合主要步骤:1.打开高级查找2.在查找内容中输入\[[0-9,-]{1,}\],并勾选搜索选项中的“使用通配符”3.点击在以下......
  • 易优CMS中如何批量修改友情链接的打开方式?
    在易优CMS中,如果你需要批量修改大量友情链接的打开方式(例如,将所有链接统一设置为在新窗口中打开),可以通过以下步骤来实现。以下是详细的步骤和注意事项:进入后台管理:登录易优CMS后台,进入“友情链接”管理页面。选择需要修改的链接:在友情链接列表中,勾选需要批量修改的链接......
  • AI批量视频混剪工具做视频带货的必备小咖批量剪辑助手款视频批量自动剪辑软件技术研究
    AI批量视频混剪工具在视频带货领域的技术研究摘要:本文旨在探讨一款专为视频带货领域设计的AI批量视频混剪工具——小咖批量剪辑助手。该工具通过集成先进的视频处理技术,实现了视频的高效、自动化编辑,为视频带货提供了强有力的技术支持。一、引言随着电子商务的蓬勃发展,视......
  • Labelme 图片批量缩放脚本
    Labelme标注文件,批量resize图片和对应标签,可以得到更多的训练数据importcv2importosimportjsondefresize_image(image,size):#计算新的尺寸,保持宽高比r=min(size[0]/image.shape[1],size[1]/image.shape[0])dim=(int(image.shape[1]*......
  • Origin绘图教程 | 创建模板与批量绘图
    主要内容:创建图形模板+批量绘图图形模板 请打开在我们在第一课:我的第一张绘图中保存的项目文件。点选图形窗口。可以通过菜单列表文件:近期项目来快速打开最近保存过的项目文件。 1.双击坐标刻度线标签,打开坐标轴对话框。 2.按住Ctrl键并选中对话框左边的上轴和右轴图标......
  • mysql批量更新数据库内全部表某个字符串为另外一个字符串
    示例:把指定数据库minex-pms所有表中的project_depart_name字段重庆项目部更改为渝北项目部,不存在project_depart_name字段的表排除掉,使用临时表和sql脚本的方式实现sql脚本:--1.创建实体表来存储需要更新的表名CREATETABLEIFNOTEXISTStables_to_update(table_nam......