HSV的PyQt5 QColor转换

问题描述 投票:0回答:1

我正在为具有PyQt5的Krita做HSV颜色选择器。我想利用QColor类来处理显示颜色的转换,但是我无法成功转换颜色。

我使用此颜色选择器作为输出的参考:

https://www.google.com/search?sxsrf=ACYBGNR9_2R1jGyxkqbdM8DVZfU-8hogYg%3A1583142187803&source=hp&ei=K9VcXqrKLuyMlwTorLH4Dg&q=color+picker+hex&oq=color+picker&gs_l=psy-ab.3.0.35i39l2j0l8.3060.6761..8026...2.0..0.310.1102.11j3-1......0....1..gws-wiz.....10..35i362i39j0i10.C-faeoukSfM

选择的随机颜色是:

HEX=(#eb4034)
HSV=(7, 78, 92)

当我尝试使用此代码进行转换时:

from PyQt5.QtGui import QColor

hsv = QColor.fromHsv(7,78,92,255)
color = str(hsv.redF()*255)+" | "+str(hsv.greenF()*255)+" | "+str(hsv.blueF()*255)

print(str( color ))

我的输出是:

92.0 | 67.14007782101167 | 63.85992217898833
[Finished in 0.168s]

而不是:

235, 64, 52

如何将HSV颜色输入到QColor中,然后将其转换为RGB以进行显示?

先谢谢您

pyqt5
1个回答
0
投票

您可以使用getRgb()方法获取具有值的元组:

>>> hsv = QColor.fromHsv(7,78,92,255)
>>> hsv.getRgb()
(92, 67, 64, 255)

您会发现这些值与您期望的值不同,这是因为十六进制颜色#eb4034与HSV(7、78、92)不同。

>>> hsv.name()
'#5c4340'
>>> QColor('#eb4034').getHsv()
(3, 199, 235, 255)

请确保您使用正确的HSV值。

© www.soinside.com 2019 - 2024. All rights reserved.