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编程中进行迭代和遍历
Jan 19 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
python实现音乐下载器
Apr 15 Python
Python装饰器用法实例总结
May 26 Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 Python
python 构造三维全零数组的方法
Nov 12 Python
Python基础学习之类与实例基本用法与注意事项详解
Jun 17 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
Python模拟登入的N种方式(建议收藏)
May 31 Python
一劳永逸彻底解决pip install慢的办法
May 24 Python
OpenCV 图像梯度的实现方法
Jul 25 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
操作Oracle的php类
2006/10/09 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
Element Tooltip 文字提示的使用示例
2020/07/26 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
python和C语言混合编程实例
2014/06/04 Python
Django的信号机制详解
2017/05/05 Python
python让列表倒序输出的实例
2018/06/25 Python
Flask框架配置与调试操作示例
2018/07/23 Python
Python中的CSV文件使用"with"语句的方式详解
2018/10/16 Python
Python字典的核心底层原理讲解
2019/01/24 Python
python实现矩阵打印
2019/03/02 Python
python retrying模块的使用方法详解
2019/09/25 Python
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
施惠特软件测试面试题以及笔试题
2015/05/13 面试题
个性发展自我评价
2014/02/11 职场文书
军训自我鉴定200字
2014/02/13 职场文书
实习报告评语
2014/04/26 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
公务员个人总结
2015/02/12 职场文书
太空授课观后感
2015/06/17 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA