Python 技术篇-用PIL库修改图片透明度,改变png图片色道为RGBA、RGB。
时间:2022-07-25
本文章向大家介绍Python 技术篇-用PIL库修改图片透明度,改变png图片色道为RGBA、RGB。,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
PIL库可以设置图片透明度。
pip install pillow
安装了pillow库后就可以使用PIL库了。
我们都知道,图片是由无数个点组成的,300x300像素,就是9万个点。 每个点都有对应的颜色,PIL图可以获取和设置每个像素点的颜色。
颜色有两种RGBA和RGB,(r, g, b, a)前者有4个值,后者有3个值,每个都是0到255,RGBA的a就代表透明度。
getpixel((x, y))
是获取对应像素点的颜色。
putpixel((x, y), color)
是设置对应像素点的颜色。
from PIL import Image
img = Image.open("安娜的橱窗.jpg")
img = img.convert('RGBA') # 修改颜色通道为RGBA
x, y = img.size # 获得长和宽
# 设置每个像素点颜色的透明度
for i in range(x):
for k in range(y):
color = img.getpixel((i, k))
color = color[:-1] + (100, )
img.putpixel((i, k), color)
img.save("安娜的橱窗_switch.PNG") # 要保存为.PNG格式的图片才可以
注:.PNG格式的图片才支持透明度设置哦!
重点讲一下这段代码:color = color[:-1] + (100, )
因为获取到的color是(r, g, b, 255)这是一个元组,[:-1]是切片,代表获取前3个元素,就是(r, g, b),然后再加个(100, )这是包含一个数元组的写法。加起来就是(r, g, b, 100)达到修改透明度的效果。
运行后的效果图如下:
- phalapi-入门篇6(小技巧和浅谈API适用范围以及入门篇总结)
- phalapi-入门篇2(把它玩起来)
- phalapi-入门篇3(请求和返回)
- phalapi-入门篇1(简单介绍以及环境搭建)
- 1.开发规范-- 常用的版本控制
- phalcon-入门篇1(基本介绍与环境搭建)
- 基于PhalApi的Redis拓展
- PhalApi-Image -- 图像处理
- 为什么微信红包长这样?
- Visual Studio 2008 每日提示(三十六)
- zephir-(6)运算符
- zephir-(12)php函数和异常处理
- phalapi-进阶篇7(使用缓存以及用redis拓展解决实际问题)
- 5个不为人知的Java API使用技巧
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- laravel 解决Eloquent ORM的save方法无法插入数据的问题
- laravel框架中控制器的创建和使用方法分析
- php 使用expat方式解析xml文件操作示例
- laravel利用中间件做防非法登录和权限控制示例
- laravel框架中表单请求类型和CSRF防护实例分析
- Yii框架getter与setter方法功能与用法分析
- laravel框架中视图的基本使用方法分析
- laravel5 Eloquent 实现事务方式
- Laravel 微信小程序后端搭建步骤详解
- Laravel使用swoole实现websocket主动消息推送的方法介绍
- Laravel框架Eloquent ORM删除数据操作示例
- PHP常用函数之base64图片上传功能详解
- laravel-admin 实现在指定的相册下添加照片
- Laravel框架Eloquent ORM修改数据操作示例
- PHP常用函数之格式化时间操作示例