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实现strcmp函数功能示例
Mar 25 Python
Python实例之wxpython中Frame使用方法
Jun 09 Python
Python实现网站文件的全备份和差异备份
Nov 30 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
python实现报表自动化详解
Nov 16 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
Python版中国省市经纬度
Feb 11 Python
python 中不同包 类 方法 之间的调用详解
Mar 09 Python
python argparse传入布尔参数false不生效的解决
Apr 20 Python
PyTorch 如何自动计算梯度
May 23 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
Jun 05 Python
python使用pymysql模块操作MySQL
Jun 16 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采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
PHP用户验证和标签推荐的简单使用
2016/10/31 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
2015/12/14 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
基于JavaScript实现活动倒计时效果
2017/04/20 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
书单|人生苦短,你还不用python!
2017/12/29 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
2018/05/24 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Python基于当前时间批量创建文件
2020/05/07 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
python利用platform模块获取系统信息
2020/10/09 Python
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
大一自我鉴定范文
2013/12/27 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
银行先进个人总结
2015/02/15 职场文书
时尚女魔头观后感
2015/06/04 职场文书
2015教师节通讯稿
2015/07/20 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP
JavaScript流程控制(循环)
2021/12/06 Javascript
Python字符串格式化方式
2022/04/07 Python
Python采集壁纸并实现炫轮播
2022/04/30 Python