【教学类-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

相关文章

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

恶意PNG:隐藏在图片中的“恶魔”

&lt;img src=&quot;https://i-blog.csdnimg.cn/blog_migrate/bffb187dc3546c6c5c6b8aa18b34b962.jpeg&quot; title=&quot;214201hhuuhubsuyuukbfy_meitu_1_meitu_2.jpg&quot;/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

第49课 Scratch入门篇:骇客任务背景特效

骇客任务背景特效 故事背景:   骇客帝国特色背景在黑色中慢慢滚动着! 程序原理:  1 、 角色的设计技巧  2 、克隆体的应用及特效的使用 开始编程   1、使用 黑色的背景: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7d74c872f06b4d9fbc88aecee634b074.png#pic_center)   2

数据中台出现的背景

数据中台产生背景 数据建设中出现的问题 在企业数据建设过程中,都离不开大数据平台建设,大数据平台建设涉及数据采集、数据存储、数据仓库构建、数据处理分析、数据挖掘、数据可视化等一系列流程。 随着企业体量不断增大,一个企业可能有总公司及很多子公司,随着企业各类业务多元化和垂直业务发展,从全企业角度来看,每个子公司或者某些独立的业务部都在构建大数据分析平台,在企业内部形成了很多分散、烟囱式、独立的

PNG透明背景按钮的实现(MFC)

问题描述: 当前要在对话框上添加一个以两个PNG图片作为背景的按钮,PNG图的背景是透明的,按钮也要做出相同的透明效果。并且鼠标不在按钮上时,按钮显示"bg1.png";鼠标移动到按钮上时,按钮显示"bg2.png" 开发环境为VS2010。 解决办法: 使用GDI+库装载PNG图片,并使用MFC Button Control和CMFCButton类结合,调用CMFCButton

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

《教学与管理》

《教学与管理》系国家新闻出版总署批准,面向国内外公开发行的教育类学术期刊。《教学与管理》国际标准刊号ISSN1004-5872,国内统一刊号CN14-1024/G4。 教学与管理来稿注意事项 ■本刊主要设有“理论研究、教育观察、办学改革、学校管理、班级管理、教研活动、教育法制、德育建设、课程建设、教学研究、教学方法、教材研究、教学评价、学法指导、考试研究、比较教育”等栏目。 ■本刊读者对象为

Matplotlib图像读取和输出及jpg、png格式对比,及透明通道alpha设置

图像像素值 图像像素值一般size为3,也就是通道数,分别代表R,G,B,如果只有单一 一个值则表示灰度值,也就是说一张二维图片,当长和宽都为1080时,那么若是灰度图像,图像尺寸为(1080,1080,1)若是RGB图像则为(1080,1080,3), jpg、png图像格式 jpg图像的灰度值范围和RGB范围为[0,255],数值类型为uint8,也就是无符号整数 png图像的灰度值范