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 相关文章推荐
一个检测OpenSSL心脏出血漏洞的Python脚本分享
Apr 10 Python
Python中IPYTHON入门实例
May 11 Python
Python在图片中添加文字的两种方法
Apr 29 Python
几种实用的pythonic语法实例代码
Feb 24 Python
python按照多个条件排序的方法
Feb 08 Python
详解python配置虚拟环境
Apr 08 Python
python实现邮件发送功能
Aug 10 Python
使用pyplot.matshow()函数添加绘图标题
Jun 16 Python
python3爬虫中多线程进行解锁操作实例
Nov 25 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
Python之多进程与多线程的使用
Feb 23 Python
k-means & DBSCAN 总结
Apr 27 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脚本的10个技巧(6)
2006/10/09 PHP
global.php
2006/12/09 PHP
PHP面向对象程序设计OOP继承用法入门示例
2016/12/27 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
asp 取文本框名称代码
2008/12/02 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
AJAX的跨域与JSONP(为文章自动添加短址的功能)
2010/01/17 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
vue scroller返回页面记住滚动位置的实例代码
2018/01/29 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
Python 文件和输入输出小结
2013/10/09 Python
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
python支持多继承吗
2020/06/19 Python
python中uuid模块实例浅析
2020/12/29 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
会计顶岗实习心得
2014/01/25 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
医院合作协议书
2014/08/19 职场文书
工作作风承诺书
2014/08/30 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
检讨书范文2000字
2015/01/28 职场文书
农村环境卫生倡议书
2015/04/29 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
小学思想品德教学反思
2016/02/24 职场文书
MySQL分区表实现按月份归类
2021/11/01 MySQL
Python循环之while无限迭代
2022/04/30 Python