python怎么变各种颜色_python – 如何淡化颜色
有很多方法可以做到这一点.您如何选择这取决于您是否重视速度和简单性或感知均匀性.如果你需要它是真正统一的,你需要用颜色配置文件定义RGB颜色,你需要配置文件的原色,这样你就可以转换为XYZ,然后转换到LAB,你可以操作L通道.
大多数情况下,您不需要这样做,而是可以使用像Photoshop一样的简单HSB模型.
要做到这一点,您只需想象一下RGB点与3D空间中的白点之间的线,并沿着该线移动颜色.实际上,您可以为该线创建参数方程并移动参数.
import numpy as np
def lighter(color, percent):
'''assumes color is rgb between (0, 0, 0) and (255, 255, 255)'''
color = np.array(color)
white = np.array([255, 255, 255])
vector = white-color
return color + vector * percent
百分比0.0将返回相同的颜色,1.0将返回白色.之间的一切都将是相同色调的浅色调.这应该给你的结果与Photoshop的HSB实现一致,但是将取决于设备并且可能不是完全一致的.
如果你有RGB [200,100,50]并且放入.50的百分比,它应该返回RGB [227.5 177.5 152.5] Photoshop报告两者的色调为20º.
没有numpy这样做并不难,但是元素操作很方便.
根据评论进行编辑:
我并不是建议你这样做,除非你知道你真的需要这么做.但是,如果你想转换为LAB,你可以毫无困难地进行操作.最重要的是,你需要知道你的RGB数字开头的颜色空间,或者你需要对它们的含义做一些假设.由于sRGB在网络上非常标准,我会在这里假设.
转换并不困难,但很容易出错.令人高兴的是,有一个非常好的colormath模块和良好的文档:https://github.com/gtaylor/python-colormath
使用它你可以像这样在sRGB和LAB之间转换:
from colormath.color_objects import sRGBColor, LabColor
from colormath.color_conversions import convert_color
sRGB = sRGBColor(126, 126, 126, is_upscaled=True) # or between [0, 1] with out is_upscaled
lab = convert_color(sRGB, LabColor)
实验室现在是一个带有亮度通道lab.lab_l的颜色,您可以在黑色(0)和白色(100)之间上下移动.这应该比HSB在感知上更统一(但是,根据您的应用,可能还不足以保证工作).
您只需更改lab_l然后转换回:
lab.lab_l = 80
new_sRGB = convert_color(lab, color_objects.sRGBColor).get_upscaled_value_tuple()
new_sRGB现在是[198,198,198]. colormath为您处理光源和伽玛问题.
python怎么变各种颜色_python – 如何淡化颜色相关推荐
- python中如何定义颜色_Python图像处理之颜色的定义与使用分析
本文实例讲述了Python图像处理之颜色的定义与使用.分享给大家供大家参考,具体如下: python中的颜色相关的定义在matplotlib模块中,为方便使用,这里给大家展示一下在这个模块中都定义了哪 ...
- python中的颜色_Python中常见颜色记录
python中常见绘图的颜色选择 常见颜色 可选的颜色库 颜色名称对应的颜色码 names = { 'aliceblue': '#F0F8FF', 'antiquewhite': '#FAEBD7', ...
- python有什么颜色_Python中常见颜色记录
python中常见绘图的颜色选择 常见颜色 可选的颜色库 颜色名称对应的颜色码 names = { 'aliceblue': '#F0F8FF', 'antiquewhite': '#FAEBD7', ...
- python中的颜色_Python中的颜色函数
从this question我学会了如何给Python上色.我查清楚了所有的色码,别担心. 不管怎样,对我有效的答案是orip的ctypes.每次我想给文本上色时都要输入ctypes.windll.k ...
- python设置随机绘图颜色_Python绘图的颜色设置
转载请注明出处: 参考网址: 代码: plt.subplots(1, 1) x= range(100) y= [i**2 for i in x] plt.plot(x, y, linewidth = ...
- python怎么变大字体_python – 更改字体大小而不会弄乱Tkinter按钮大小
我无法在Tkinter中更改按钮的字体大小,当我尝试这样做时,按钮也会根据文本的大小进行扩展/收缩.有没有办法可以改变文本大小,按钮的大小固定在原位? 我在设计一个井字应用程序时遇到了这个问题,但是为 ...
- python中颜色_Python中十六进制颜色的字符串格式
我修改了 PHP中的函数以返回颜色渐变(http://www.herethere.net/~samson/php/color_gradient/color_gradient_generator.php ...
- python换循环颜色_python – 增加matplotlib颜色循环
你可以打电话 ax2._get_lines.get_next_color() 在彩色上推进彩色循环仪.不幸的是,这会访问私有属性._get_lines,因此这不是官方公共API的一部分,并且不能保证在 ...
- python灰度图cv2到plt变颜色_python中plt.imshow与cv2.imshow显示颜色问题
python中plt.imshow与cv2.imshow显示颜色问题 在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象. 这是因为:opencv的接口使用BGR ...
最新文章
- MySQL从5.7.32升级到8.0.22
- 1.2.4 TCP/IP参考模型和五层参考模型
- 开展Java的学习方向,看最新Java视频教程
- 平安城市与智慧城市对接的关键要素
- git菜单形式的_Idea:Git的常用菜单操作和常用命令
- 4章. 安装CentOS 5.x与多重引导小技巧
- 三分钟带你弄懂slot插槽——vue进阶
- mybaitplus 根据id批量进行修改_phpcms小程序插件api接口升级到4.3(新增批量获取、搜索等接口)...
- C语言字母标题,C语言题目!!
- python字符串转为ascii码_Python转义字符及用法
- 实验室设备选择UPS电源方法
- 群晖Docker的高级操作
- 超赞Win10日历悬停效果,爱了爱了(使用HTML、CSS和vanilla JS)
- DOM是什么?有什么用处?js与DOM啥关系?
- 百度信息流是什么?哪些行业适合投放百度信息流?
- 大佬给总结的单片机看门狗详解很有用
- 微信视频服务器能保存多久,微信视频动态保存多久(微信背景视频只能一天吗)...
- c语言总统竞选问题,一上台就紧张?这个模型生成演讲替身,肢体语言比总统候选人还丰富...
- 【leetcode】剑指 Offer 29. 顺时针打印矩阵(shun-shi-zhen-da-yin-ju-zhen-lcof)(模拟)[简单]
- 西交计算机科学与技术保研率,西北高校保研率:西交、西工大、西电前三