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 相关文章推荐
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
python 查找字符串是否存在实例详解
Jan 20 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
python定向爬取淘宝商品价格
Feb 27 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
为什么黑客都用python(123个黑客必备的Python工具)
Jan 31 Python
TensorFlow 显存使用机制详解
Feb 03 Python
python 读取.nii格式图像实例
Jul 01 Python
完美解决Pycharm中matplotlib画图中文乱码问题
Jan 11 Python
Python中异常处理用法
Nov 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获取当前所在目录位置的方法
2014/11/26 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
让焦点自动跳转
2006/07/01 Javascript
Javascript 验证上传图片大小[客户端]
2009/08/01 Javascript
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
2016/10/11 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
js 计算月/周的第一天和最后一天代码
2020/02/01 Javascript
Python模块WSGI使用详解
2018/02/02 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
python logging通过json文件配置的步骤
2020/04/27 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
物流专业大学生的自我鉴定
2013/11/13 职场文书
出租房屋协议书
2014/09/14 职场文书
意外死亡赔偿协议书
2014/10/14 职场文书
档案管理员岗位职责
2015/02/12 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL
Nginx跨域问题解析与解决
2022/08/05 Servers