Python实现转换图片背景颜色代码


Posted in Python onApril 30, 2020

在使用图片的时候有时候我们希望改变背景颜色,这样就只关注于图片本身。比如在连连看中就只有图片,而没有背景,其实我个人感觉有背景好看一点。

两种方法,思路一致:

法一:

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') # 保存图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python回调函数用法实例详解
Jul 02 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
python3中dict(字典)的使用方法示例
Mar 22 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
Python+request+unittest实现接口测试框架集成实例
Mar 16 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
python+selenium实现简历自动刷新的示例代码
May 20 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
Jul 07 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
pytorch损失反向传播后梯度为none的问题
May 12 Python
详解如何用Python实现感知器算法
Jun 18 Python
Python requests.post方法中data与json参数区别详解
Apr 30 #Python
python:解析requests返回的response(json格式)说明
Apr 30 #Python
python 串行执行和并行执行实例
Apr 30 #Python
Django Channel实时推送与聊天的示例代码
Apr 30 #Python
Django ORM 查询表中某列字段值的方法
Apr 30 #Python
Python pip install如何修改默认下载路径
Apr 29 #Python
Django 5种类型Session使用方法解析
Apr 29 #Python
You might like
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
ajax 文件上传应用简单实现
2009/03/03 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
jquery对表单操作2
2011/04/06 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
Javascript for in的缺陷总结
2017/02/03 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
2017/12/21 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
使用layer弹窗,制作编辑User信息页面的方法
2019/09/27 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
python 性能优化方法小结
2017/03/31 Python
Python装饰器用法实例总结
2018/05/26 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
PHP如何与mysql建立链接
2013/05/05 面试题
宝信软件JAVA工程师面试经历
2012/08/19 面试题
工会主席岗位责任制
2014/02/11 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
公安机关纪律作风整顿剖析
2014/10/10 职场文书
婚宴祝酒词大全
2015/08/10 职场文书
pandas取dataframe特定行列的实现方法
2021/05/24 Python
mysql查询结果实现多列拼接查询
2022/04/03 MySQL