Python将sRGB值转换为RGB
首先,我保证我已经看了很多关于这个问题的资料,包括这里的内容,但似乎没有什么能解决我的问题。我有三个值来表示一种颜色,都是在sRGB空间里的,现在我需要把它们转换成“普通”的RGB(也就是值从0到255之间的线性变化)。
我尝试了这段代码(在很多地方推荐过):
def srgb2lin(s):
if s <= 0.0404482362771082:
lin = s / 12.92
else:
lin = pow(((s + 0.055) / 1.055), 2.4)
return lin
虽然转换后的值好一些,但它们仍然和我需要的值不一样(举个例子:输入0.4时返回的是33,而我需要的是59,至少在我手动输入RGB值到一个生成sRGB值的程序中时,看到的结果是这样的。如果这样说能让你明白的话)。
我知道转换并不是那么简单,但应该有一些地方能找到相关的代码吧?
1 个回答
1
抱歉,大家,我真是个傻瓜(为了辩解一下,我是个非常老的程序员——在Basic出现之前,我就已经在用COBOL了)。
在我的程序里,我不小心把绿色和蓝色搞混了——出于某种原因(虽然我知道是“RGB”),我把它写成了RBG。所以颜色肯定不对……但这不是我做错了什么(大家都知道,电脑只是按照我们说的去做。我让它出错了)。
我不知道这里有没有办法直接删除东西,但如果有的话(而且其他人能做到的话),请帮我删除。现在我程序里的所有“正常”颜色空间转换都能正常工作了。