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网页请求urllib2模块简单封装代码
Feb 07 Python
Python常用内置函数总结
Feb 08 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
Python线程池模块ThreadPoolExecutor用法分析
Dec 28 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
查看端口并杀进程python脚本代码
Dec 17 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
Feb 18 Python
python实现在内存中读写str和二进制数据代码
Apr 24 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 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
中国收音机工业发展史
2021/03/02 无线电
一篇入门的php Class 文章
2007/04/04 PHP
php 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
smarty中英文多编码字符截取乱码问题解决方法
2014/10/28 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
PHP手机短信验证码实现流程详解
2018/05/17 PHP
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
node.js实现BigPipe详解
2014/12/05 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
js 实现复选框只能选择一项的示例代码
2018/01/23 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
跟老齐学Python之折腾一下目录
2014/10/24 Python
浅析Python中的多重继承
2015/04/28 Python
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
python实现猜数字小游戏
2020/03/24 Python
python数组循环处理方法
2019/08/26 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
个人委托书范本
2014/04/02 职场文书
毕业生工作求职信
2014/06/30 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书