Python - 实现渐变色的RGB计算
一、解决了什么问题:
求得两个颜色之间颜色渐变的RGB。
二、公式:
Gradient = A + (B-A) / Step * N
编程时为了提高效率避免浮点运算,往往把除法放在最后面,这样公式就成了:Gradient = A + (B-A) * N / Step
注:Gradient表示第N步的R/G/B的值,A、B、Step表示从颜色A分Step步渐变为颜色B。
三、计算过程:
设Step=3,将RGB(200,50,0)颜色渐变为RGB(50,200,0),即:RGB(200,50,0)经过3次颜色渐变转为RGB(50,200,0)
第0次转换,即RGB(200,50,0)本身:
R0 = 200 + (50 - 200) / 3 * 0 = 200
G0 = 50 + (200 - 50) / 3 * 0 = 50
B0 = 0 + (0 - 0) / 3 * 0 = 0
RGB0 = (200, 50, 0)
第1次转换:
R1 = 200 + (50 - 200)/ 3 * 1 = 150
G1 = 50 + (200 - 50) / 3 * 1 = 100
B1 = 0 + (0 - 0) / 3 * 1 = 0
RGB1 = (150, 100, 0)
第2次转换:
R2 = 200 + (50 - 200)/ 3 * 2 = 100
G2 = 50 + (200 - 50) / 3 * 2 = 150
B2 = 0 + (0 - 0) / 3 * 2 = 0
RBG2 = (100, 150, 0)
第3次转换,即目标颜色RGB(50,200,0):
R3 = 200 + (50 - 200)/ 3 * 3 = 50
G3 = 50 + (200 - 50) / 3 * 3 = 200
B3 = 0 + (0 - 0) / 3 * 3 = 0
RBG3 = (50, 200, 0)
四、代码
import matplotlib.pyplot as plt
import numpy as npstep = 3 # 经过step步到达目标颜色
color_num = step + 1
one = np.ones(color_num)
from_rgb = (200,50,0) # 起始颜色
to_rbg = (50,200,0) # 目标颜色colors = [((from_rgb[0] + (to_rbg[0]-from_rgb[0])/step*i),(from_rgb[1] + (to_rbg[1]-from_rgb[1])/step*i),(from_rgb[2] + (to_rbg[2]-from_rgb[2])/step*i))for i in range(color_num)]for index, color in enumerate(colors):print(index, color)colors = [((from_rgb[0] + (to_rbg[0]-from_rgb[0])/step*i) / 255,(from_rgb[1] + (to_rbg[1]-from_rgb[1])/step*i) / 255,(from_rgb[2] + (to_rbg[2]-from_rgb[2])/step*i) / 255)for i in range(color_num)]plt.pie(one, labels=range(color_num), colors=colors) # colors要求是0-1的浮点数
plt.show()
结果与颜色展示:
五、举一反三
下面对step、起始颜色、目标颜色进行修改,细分更多步骤的变化展示。
例1:
step = 50
from_rgb = (193, 214, 6)
to_rbg = (244, 225, 67)
例2:
step = 50
from_rgb = (244, 225, 67)
to_rbg = (227, 118, 0)
六、参考
- 颜色渐变的RGB计算
Python - 实现渐变色的RGB计算相关推荐
- 使用Python,Matplotlib显示RGB图像
使用Python,Matplotlib显示RGB格式的 图像 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用matplotlib显示RGB图像.具体是使用matplotlib,pyplot和m ...
- python 科学计算基础教程电子版-自学Python 编程基础、科学计算及数据分析
自学Python 编程基础.科学计算及数据分析 epub pdf mobi txt 下载 自学Python 编程基础.科学计算及数据分析 epub pdf mobi txt 下载 ☆☆☆☆☆ 李金 著 ...
- 全面对比 MATLAB、Julia、Python,谁在科学计算中更胜一筹?
数百种编程语言,各有优劣,各自也都有自己最为适用的场景.那么就科学计算领域而言,主流的 MATLAB.Julia.Python 会有哪些最为独特的优势呢?又存在哪些让开发者无力的缺陷?在本文中,我们将 ...
- 2021-01-07 Python Opencv转换颜色空间 RGB转为HSV
Python Opencv转换颜色空间 RGB转为HSV 举个例子,通过摄像头把视频中的蓝色区域凸显出来,剩余的颜色均为黑色 import numpy as npcap = cv2.VideoCapt ...
- 梯度、梯度法、python实现神经网络的梯度计算
[机器学习]梯度.梯度法.python实现神经网络的梯度计算 一.python实现求导的代码: 二.what is 梯度 三.使用梯度法寻找神经网络的最优参数 四.神经网络的梯度计算 一.python ...
- Python数据分析学习笔记:计算向量夹角
Python数据分析学习笔记:计算向量夹角 通过计算两个向量夹角了解两个向量之间的相关性. # 计算向量夹角import numpy as npdef included_angle(a, b):a_n ...
- Python数据分析学习笔记:计算相关系数
Python数据分析学习笔记:计算相关系数 1.相关系数概念 相关系数,或称线性相关系数.皮氏积矩相关系数(Pearson product-moment correlation coefficient ...
- python怎么算积分_python计算积分
python有多个方法计算积分,下面介绍其中三个,以下式为例: 方法一:直接用numpy计算 start = 1 stop = 2 length = 101 x = np.linspace(start ...
- python修改ABAQUS的inp计算文件
python修改ABAQUS的inp计算文件 这里的函数可以与上一个博客Matlab-python-ABAQUS数据交互及联合使用的函数接口相互配合和集成,实现matlab与Abaqus进行联合仿真计 ...
最新文章
- android h5 多图上传源码,JS移动端/H5同时选择多张图片上传并使用canvas压缩图片...
- 洛谷P2380 狗哥采矿
- 12月22日 find命令
- boost::histogram::axis::transform用法的测试程序
- struts2 的国际化
- python elasticsearch update_使用python的elasticsearch部分更新
- 主动安全,新华三融合生态之力!
- 为什么base64编码的字符串的末尾有=符号
- linux 修改ssh密码_西部数码使用指南:弹性云linux系统通过控制台进入单用户重置ssh登陆密码(适用centos6)...
- 笑哭了!日本网友求助如何卸载360浏览器,过程堪比“ 拆弹 ”...
- 计算机 映射网络驱动器,映射网络驱动器
- 值得收藏!深度报告解读NB-IoT
- _stdcall,_cdecl区别
- 欧拉常数 Euler's constant
- 渗透测试-HTTP Strict Transport Security
- SaaSBase:免费的思维导图软件:2022年9种最好的工具
- OpenStack——开放栈(源自NASA的开源云管理软件)
- [论文阅读](不确定性系列)
- STM32中断优先级管理
- 居家隔离没事干?进来秒变算法工程师
热门文章
- oracle两个压缩包怎么解压,AIX下如何解压缩zip文件
- ICC 图文学习——LAB2:Design Planning 设计规划
- bitmap的六种压缩方式,Android图片压缩(转)
- C语言(PTA习题)7-3 数字三角形
- 软件设计工程——设计流程
- 计算一元二次方程(考虑实根虚根无解)
- c语言double可以代表整型么,C语言中整型变量(int)实型变量(float)双精度变量(double)到底是什么东西?有什么区...
- cpi 计算机体系结构 转移指令,计算机体系结构题目.ppt
- 报表解决方案Telerik Reporting发布R2 2019 SP1|支持MS Access
- vue使用脚手架的单文件组件环境搭建