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 django事务transaction源码分析详解
Mar 17 Python
Python中的错误和异常处理简单操作示例【try-except用法】
Jul 25 Python
基于numpy中数组元素的切片复制方法
Nov 15 Python
使用Python和Prometheus跟踪天气的使用方法
May 06 Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 Python
Python tkinter模版代码实例
Feb 05 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
python实现小程序推送页面收录脚本
Apr 20 Python
Python 如何在字符串中插入变量
Aug 01 Python
python如何绘制疫情图
Sep 16 Python
利用Python过滤相似文本的简单方法示例
Feb 03 Python
tensorboard 可视化之localhost:6006不显示的解决方案
May 22 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
PHP5下$_SERVER变量不再受magic_quotes_gpc保护的弥补方法
2012/10/31 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
Python实现统计单词出现的个数
2015/05/28 Python
python实现在windows服务中新建进程的方法
2015/06/30 Python
Python调用系统底层API播放wav文件的方法
2017/08/11 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
使用Python AIML搭建聊天机器人的方法示例
2018/07/09 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
Django接收自定义http header过程详解
2019/08/23 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
挂职思想汇报
2013/12/31 职场文书
幼儿园教师工作制度
2014/01/22 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android