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 3.5下xadmin的使用及修复源码bug
May 10 Python
Python使用time模块实现指定时间触发器示例
May 18 Python
python线程池threadpool实现篇
Apr 27 Python
Python调用服务接口的实例
Jan 03 Python
python向图片里添加文字
Nov 26 Python
Python Lambda函数使用总结详解
Dec 11 Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 Python
python speech模块的使用方法
Sep 09 Python
5分钟快速掌握Python定时任务框架的实现
Jan 26 Python
python调用百度AI接口实现人流量统计
Feb 03 Python
Django给表单添加honeypot验证增加安全性
May 06 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从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
将list转换为json失败的原因
2013/12/17 Javascript
带左右箭头图片轮播的JS代码
2013/12/18 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
浅谈JSON5解决了JSON的两大痛点
2020/12/14 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 RNG vs Dragon BO3 第一场 1月24日
2021/03/11 DOTA
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
Python中求对数方法总结
2020/03/10 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
为什么相对PHP黑python的更少
2020/06/21 Python
Python类class参数self原理解析
2020/11/19 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
学期自我鉴定范文
2013/10/01 职场文书
写演讲稿要注意的六件事
2014/01/14 职场文书
人力资源管理专业应届生求职信
2014/04/24 职场文书
学校党委副书记个人对照检查材料思想汇报
2014/09/28 职场文书
社区母亲节活动总结
2015/02/10 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
排球赛新闻稿
2015/07/17 职场文书
python 批量压缩图片的脚本
2021/06/02 Python
JavaScript 反射学习技巧
2021/10/16 Javascript