Python实现转换图片背景颜色代码
作者:yaominghui 发布时间:2023-02-13 09:02:54
标签:Python,图片,背景,颜色
在使用图片的时候有时候我们希望改变背景颜色,这样就只关注于图片本身。比如在连连看中就只有图片,而没有背景,其实我个人感觉有背景好看一点。
两种方法,思路一致:
法一:
import cv2
# 修改透明背景为白色
def transparence2white(img):
sp=img.shape # 获取图片维度
width=sp[0] # 宽度
height=sp[1] # 高度
for yh in range(height):
for xw in range(width):
color_d=img[xw,yh] # 遍历图像每一个点,获取到每个点4通道的颜色数据
if(color_d[3]==0): # 最后一个通道为透明度,如果其值为0,即图像是透明
img[xw,yh]=[255,255,255,255] # 则将当前点的颜色设置为白色,且图像设置为不透明
return img
img=cv2.imread('bar.png',-1) # 读取图片。-1将图片透明度传入,数据由RGB的3通道变成4通道
img=transparence2white(img) # 将图片传入,改变背景色后,返回
cv2.imwrite('bar.png',img) # 保存图片,文件名自定义,也可以覆盖原文件
法二:
from PIL import Image
def transparence2white(img):
# img=img.convert('RGBA') # 此步骤是将图像转为灰度(RGBA表示4x8位像素,带透明度掩模的真彩色;CMYK为4x8位像素,分色等),可以省略
sp=img.size
width=sp[0]
height=sp[1]
print(sp)
for yh in range(height):
for xw in range(width):
dot=(xw,yh)
color_d=img.getpixel(dot) # 与cv2不同的是,这里需要用getpixel方法来获取维度数据
if(color_d[3]==0):
color_d=(255,255,255,255)
img.putpixel(dot,color_d) # 赋值的方法是通过putpixel
return img
img=Image.open('bar.png')
img=transparence2white(img)
# img.show() # 显示图片
img.save('bar3.png') # 保存图片
来源:https://www.cnblogs.com/jaysonteng/p/12793178.html


猜你喜欢
- 对于时间数据,如2018-09-25 09:28:59,有时需要与Unix时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python
- append()方法追加传递obj到现有的列表。语法以下是append()方法的语法:list.append(obj)参数&nb
- 今天淘到的,终于可以放心的使用IE7了,再也不用换回IE6做测试了!因为这个10M大小的软件已经包含了从IE3到IE6的版本,安装过程中可以
- 本文实例讲述了C#操作SQLite数据库帮助类。分享给大家供大家参考,具体如下:最近有WPF做客户端,需要离线操作存储数据,在项目中考虑使用
- mysql中replace函数替换字符串介绍下mysql的REPLACE()函数语法:REPLACE()函数的语法如下:REPLACE(st
- Fiddler简介Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddl
- 在这个擦亮自己的眼睛去看SQL Server的系列中的第二篇中提过要写历史渊源,这里的历史主要描述的是数据库本身的历史与SQL Server
- Application-settings我们在创建tornado.web.Application的对象时,传入了第一个参数&mdas
- 日常工作中需要对比两个Excel工作表中的数据差异是很不方便的,使用python来做就比较简单了!我们的思路是通过读取两个Excel的数据,
- 山河远阔,烟火人间,又一年,千里婵娟~今天给大家带来的是给玉兔投喂月饼的小游戏。八月十五中秋夜晚,让我们对着月亮许愿:希望我们在意和在意我们
- 前言最近在写行为识别的代码,涉及到两个网络的融合,这个融合是有加权的网络结果的融合,所以需要对网络的结果进行加权(相乘)和融合(相加)。最初
- 前几天,在所有数据库服务器部署了监控磁盘空间的存储过程和作业后(MS SQL 监控磁盘空间告警),今天突然收到了两封告警邮件,好吧,存储规划
- SQL语句参考及记录集对象详解1. ASP与Access数据库连接:2. ASP与SQL数据库连接:建立记录集对象:set rs=serve
- 在进行ASP网站开发时,有时需在客户端调用MSSQL数据库的数据进行打印,若调用数据量小,可以通过在客户端运用FileSystemObjec
- 在写django项目的时候,有的数据没有使用模型管理(数据表是动态添加的),所以要直接使用mysql。前端请求数据的时候可能会指定这几个参数
- Django的权限系统很简单,它可以赋予users或groups中的users以权限。Django admin后台就使用了该权限系统,不过也
- 本文实例讲述了python网络编程:socketserver的基本使用方法。分享给大家供大家参考,具体如下:本文内容:socketserve
- 使方法一、用IP138数据库查询域名或IP地址对应的地理位置。#-*- coding:gbk -*-import urllib2import
- 如何在刷新链接之前验证文件是否存在?如何在每次刷新链接之前,验证链接文件是否确实存在?特别是对于数据库中的文件,我们必须在处理它之前确认一下
- 注意事项Soft-NMS对于大多数数据集而言,作用比较小,提升效果非常不明显,它起作用的地方是大量密集的同类重叠场景,大量密集的不同类重叠场