【教学类-53-01】20240509“去掉背景的png彩色图片”转“黑色影子图”

2024-05-10 02:12

本文主要是介绍【教学类-53-01】20240509“去掉背景的png彩色图片”转“黑色影子图”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作品展示

背景需求:

刚写完蒙德里安涂色学具,准备开课,转眼班级就“百日咳“”隔离3周,o(╥﹏╥)o

我的AI对话大师只剩1个月的有效期,剩下9万6千次也马上就作废了。

最后一个月可以尽量多用掉一些,我从小红书下载“幼儿益智区小班”的学具,看看那些学具可以用AI对话大师写Python代码。

首先我看到“小红书里的益智区的学具”的一个重要元素——“黑色影子”

也就是将彩色图片变成黑色填充图片。

素材准备:

这些图片的背景都要用PS扣掉的,另存为png

代码展示:

'''
带有alpha的png图片转影子(影子小一半)
作者:AI对话大师,阿夏
时间:2024年5月9日
'''from PIL import Image
import ospath = r'C:\Users\jg2yXRZ\OneDrive\桌面\图片转影子'
# 原始文件夹路径和目标文件夹路径
original_folder = path + r"\pic"
target_folder = path + r"\out"# 确保目标文件夹存在
if not os.path.exists(target_folder):os.makedirs(target_folder)# 获取原始文件夹中所有图片的文件名列表
image_files = [filename for filename in os.listdir(original_folder) if filename.endswith(".png")]# 遍历每个图片文件
for image_file in image_files:# 构建原始图片的完整路径original_image_path = os.path.join(original_folder, image_file)# 打开原始图片image = Image.open(original_image_path)# 创建一个新的图像,与原始图像的大小和模式相同new_image = Image.new("RGBA", image.size)# 获取原始图像的像素数据pixels = image.load()# 遍历图像的每个像素for i in range(image.size[0]):for j in range(image.size[1]):# 获取当前像素的RGBA值try:r, g, b, a = pixels[i, j]except ValueError:r, g, b = pixels[i, j]a = 255# 判断当前像素的Alpha值if a == 0:# 如果Alpha值为0,则保留该像素new_image.putpixel((i, j), (r, g, b, a))else:# 如果Alpha值不为0,则将该像素设置为黑色,不透明度为255new_image.putpixel((i, j), (0, 0, 0, 255))# 构建目标图片的完整路径target_image_path = os.path.join(target_folder, image_file)# 保存新的图像new_image.save(target_image_path)

运行结果

代码新建了一个输出文件夹

发现彩色图片是213KB,但是黑白图片只有4,15KB,对比发现小了一圈。

代码:把影子图片变大

'''
带有alpha的png图片转影子(影子一样大)
作者:AI对话大师,阿夏
时间:2024年5月9日
'''from PIL import Image
import ospath = r'C:\Users\jg2yXRZ\OneDrive\桌面\图片转影子'
# 原始文件夹路径和目标文件夹路径
original_folder = path + r"\pic"
target_folder = path + r"\out"# 确保目标文件夹存在
if not os.path.exists(target_folder):os.makedirs(target_folder)# 获取原始文件夹中所有图片的文件名列表
image_files = [filename for filename in os.listdir(original_folder) if filename.endswith(".png")]# 遍历每个图片文件
for image_file in image_files:# 构建原始图片的完整路径original_image_path = os.path.join(original_folder, image_file)# 打开原始图片image = Image.open(original_image_path)# 调整图片大小(增加像素)new_size = (image.size[0] * 2, image.size[1] * 2)  # 原始图片大小乘以2resized_image = image.resize(new_size)# 创建一个新的图像,大小是调整后的图片大小new_image = Image.new("RGBA", new_size)# 获取调整后的图片的像素数据pixels = resized_image.load()# 遍历图像的每个像素for i in range(resized_image.size[0]):for j in range(resized_image.size[1]):# 获取当前像素的RGBA值try:r, g, b, a = pixels[i, j]except ValueError:r, g, b = pixels[i, j]a = 255# 判断当前像素的Alpha值if a == 0:# 如果Alpha值为0,则保留该像素new_image.putpixel((i, j), (r, g, b, a))else:# 如果Alpha值不为0,则将该像素设置为黑色,不透明度为255new_image.putpixel((i, j), (0, 0, 0, 255))# 构建目标图片的完整路径target_image_path = os.path.join(target_folder, image_file)# 保存新的图像new_image.save(target_image_path)

原来狮子影子图示4.15,现在是8.19(大了一倍)

黑色影子笔彩色兔子的长宽还大一点,但是KB还是没有达到234KB,不过看上去已经可以了

此外png透明边缘转成黑色后,还是能看到边缘锯齿的,不是很光滑

对比——影子放大两倍

存在问题:

需要人工给jpg图片扣除白色背景,比较费时

这篇关于【教学类-53-01】20240509“去掉背景的png彩色图片”转“黑色影子图”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/975139

相关文章

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

Python实现特殊字符判断并去掉非字母和数字的特殊字符

《Python实现特殊字符判断并去掉非字母和数字的特殊字符》在Python中,可以通过多种方法来判断字符串中是否包含非字母、数字的特殊字符,并将这些特殊字符去掉,本文为大家整理了一些常用的,希望对大家... 目录1. 使用正则表达式判断字符串中是否包含特殊字符去掉字符串中的特殊字符2. 使用 str.isa

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Python实现PDF与多种图片格式之间互转(PNG, JPG, BMP, EMF, SVG)

《Python实现PDF与多种图片格式之间互转(PNG,JPG,BMP,EMF,SVG)》PDF和图片是我们日常生活和工作中常用的文件格式,有时候,我们可能需要将PDF和图片进行格式互转来满足... 目录一、介绍二、安装python库三、Python实现多种图片格式转PDF1、单张图片转换为PDF2、多张图

基于Python开发PDF转PNG的可视化工具

《基于Python开发PDF转PNG的可视化工具》在数字文档处理领域,PDF到图像格式的转换是常见需求,本文介绍如何利用Python的PyMuPDF库和Tkinter框架开发一个带图形界面的PDF转P... 目录一、引言二、功能特性三、技术架构1. 技术栈组成2. 系统架构javascript设计3.效果图

Python使用PIL库将PNG图片转换为ICO图标的示例代码

《Python使用PIL库将PNG图片转换为ICO图标的示例代码》在软件开发和网站设计中,ICO图标是一种常用的图像格式,特别适用于应用程序图标、网页收藏夹图标等场景,本文将介绍如何使用Python的... 目录引言准备工作代码解析实践操作结果展示结语引言在软件开发和网站设计中,ICO图标是一种常用的图像

css渐变色背景|<gradient示例详解

《css渐变色背景|<gradient示例详解》CSS渐变是一种从一种颜色平滑过渡到另一种颜色的效果,可以作为元素的背景,它包括线性渐变、径向渐变和锥形渐变,本文介绍css渐变色背景|<gradien... 使用渐变色作为背景可以直接将渐China编程变色用作元素的背景,可以看做是一种特殊的背景图片。(是作为背

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解