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的Bottle框架的一些使用技巧介绍
Apr 08 Python
用Python实现命令行闹钟脚本实例
Sep 05 Python
Python3简单实例计算同花的概率代码
Dec 06 Python
django_orm查询性能优化方法
Aug 20 Python
python用plt画图时,cmp设置方法
Dec 13 Python
pycharm显示远程图片的实现
Nov 04 Python
python ftplib模块使用代码实例
Dec 31 Python
python爬虫库scrapy简单使用实例详解
Feb 10 Python
python logging通过json文件配置的步骤
Apr 27 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
Python try except else使用详解
Jan 12 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注入实例
2006/10/09 PHP
php 表单验证实现代码
2009/03/10 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
JavaScript的事件代理和委托实例分析
2015/03/25 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
numpy中矩阵合并的实例
2018/06/15 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
宿舍违规检讨书
2014/01/12 职场文书
服装设计专业求职信
2014/06/16 职场文书
实习协议书范本
2014/09/25 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
回复函范文
2015/07/14 职场文书
python pyhs2 的安装操作
2021/04/07 Python
Python+Appium新手教程
2021/04/17 Python
用golang如何替换某个文件中的字符串
2021/04/25 Golang
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP