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实现多线程采集的2个代码例子
Jul 07 Python
Python使用PyGreSQL操作PostgreSQL数据库教程
Jul 30 Python
python2.7的编码问题与解决方法
Oct 04 Python
python日志记录模块实例及改进
Feb 12 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
python3.6使用urllib完成下载的实例
Dec 19 Python
Python动态赋值的陷阱知识点总结
Mar 17 Python
python opencv实现图像边缘检测
Apr 29 Python
python中count函数简单用法
Jan 05 Python
对python pandas中 inplace 参数的理解
Jun 27 Python
Python如何实现线程间通信
Jul 30 Python
Python爬取某拍短视频
Jun 11 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读MYSQL中文乱码的解决方法
2006/12/17 PHP
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
字母顺序颠倒而单词顺序不变的php代码
2010/08/08 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
超清晰的document对象详解
2007/02/27 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
深入研究React中setState源码
2017/11/17 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
Angular PWA使用的Demo示例
2019/01/31 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
Python3 翻转二叉树的实现
2019/09/30 Python
Python过滤序列元素的方法
2020/07/31 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
艺术用品:Arteza
2018/11/25 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
波兰最早的运动鞋精品店之一:Street Supply
2019/08/29 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
小学生秋游活动方案
2014/02/23 职场文书
安全生产实施方案
2014/02/23 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers