有很多方法可以做到这一点.您如何选择这取决于您是否重视速度和简单性或感知均匀性.如果你需要它是真正统一的,你需要用颜色配置文件定义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 – 如何淡化颜色相关推荐

  1. python中如何定义颜色_Python图像处理之颜色的定义与使用分析

    本文实例讲述了Python图像处理之颜色的定义与使用.分享给大家供大家参考,具体如下: python中的颜色相关的定义在matplotlib模块中,为方便使用,这里给大家展示一下在这个模块中都定义了哪 ...

  2. python中的颜色_Python中常见颜色记录

    python中常见绘图的颜色选择 常见颜色 可选的颜色库 颜色名称对应的颜色码 names = { 'aliceblue': '#F0F8FF', 'antiquewhite': '#FAEBD7', ...

  3. python有什么颜色_Python中常见颜色记录

    python中常见绘图的颜色选择 常见颜色 可选的颜色库 颜色名称对应的颜色码 names = { 'aliceblue': '#F0F8FF', 'antiquewhite': '#FAEBD7', ...

  4. python中的颜色_Python中的颜色函数

    从this question我学会了如何给Python上色.我查清楚了所有的色码,别担心. 不管怎样,对我有效的答案是orip的ctypes.每次我想给文本上色时都要输入ctypes.windll.k ...

  5. python设置随机绘图颜色_Python绘图的颜色设置

    转载请注明出处: 参考网址: 代码: plt.subplots(1, 1) x= range(100) y= [i**2 for i in x] plt.plot(x, y, linewidth = ...

  6. python怎么变大字体_python – 更改字体大小而不会弄乱Tkinter按钮大小

    我无法在Tkinter中更改按钮的字体大小,当我尝试这样做时,按钮也会根据文本的大小进行扩展/收缩.有没有办法可以改变文本大小,按钮的大小固定在原位? 我在设计一个井字应用程序时遇到了这个问题,但是为 ...

  7. python中颜色_Python中十六进制颜色的字符串格式

    我修改了 PHP中的函数以返回颜色渐变(http://www.herethere.net/~samson/php/color_gradient/color_gradient_generator.php ...

  8. python换循环颜色_python – 增加matplotlib颜色循环

    你可以打电话 ax2._get_lines.get_next_color() 在彩色上推进彩色循环仪.不幸的是,这会访问私有属性._get_lines,因此这不是官方公共API的一部分,并且不能保证在 ...

  9. python灰度图cv2到plt变颜色_python中plt.imshow与cv2.imshow显示颜色问题

    python中plt.imshow与cv2.imshow显示颜色问题 在用plt.imshow和cv2.imshow显示同一幅图时可能会出现颜色差别很大的现象. 这是因为:opencv的接口使用BGR ...

最新文章

  1. MySQL从5.7.32升级到8.0.22
  2. 1.2.4 TCP/IP参考模型和五层参考模型
  3. 开展Java的学习方向,看最新Java视频教程
  4. 平安城市与智慧城市对接的关键要素
  5. git菜单形式的_Idea:Git的常用菜单操作和常用命令
  6. 4章. 安装CentOS 5.x与多重引导小技巧
  7. 三分钟带你弄懂slot插槽——vue进阶
  8. mybaitplus 根据id批量进行修改_phpcms小程序插件api接口升级到4.3(新增批量获取、搜索等接口)...
  9. C语言字母标题,C语言题目!!
  10. python字符串转为ascii码_Python转义字符及用法
  11. 实验室设备选择UPS电源方法
  12. 群晖Docker的高级操作
  13. 超赞Win10日历悬停效果,爱了爱了(使用HTML、CSS和vanilla JS)
  14. DOM是什么?有什么用处?js与DOM啥关系?
  15. 百度信息流是什么?哪些行业适合投放百度信息流?
  16. 大佬给总结的单片机看门狗详解很有用
  17. 微信视频服务器能保存多久,微信视频动态保存多久(微信背景视频只能一天吗)...
  18. c语言总统竞选问题,一上台就紧张?这个模型生成演讲替身,肢体语言比总统候选人还丰富...
  19. 【leetcode】剑指 Offer 29. 顺时针打印矩阵(shun-shi-zhen-da-yin-ju-zhen-lcof)(模拟)[简单]
  20. 西交计算机科学与技术保研率,西北高校保研率:西交、西工大、西电前三

热门文章

  1. python人脸识别源码_Python 抖音机器人,让你找到漂亮小姐姐
  2. V$LICENSE表结构
  3. Anaconda安装Tensorflow环境
  4. 转向Kotlin——数据类和封闭类
  5. Flask form(登录,注册)
  6. 多任务管理类 MutilTaskManager
  7. 为什么公司要努力发展数字化战略
  8. 高晓松谈管理:自嘲总被员工管
  9. 如何使用ES6中的参数
  10. 网络营销第四课:网络营销需要掌握的网页代码(2)