Единственное известное мне решение - это преобразовать в RGB в качестве среднего уровня, а затем преобразовать его в нужный вам формат (CMYK-> RGB-> HSV или HSV-> RGB-> CMYK), как вы упомянули , Я не уверен, что это как-то связано с математикой или другой причиной, но здесь - это библиотека из набора веб-инструментов, которая, по крайней мере, позволит вам выполнить преобразование.
Немного больше чтения с моей стороны подняло это:
HSL и HSV определяются исключительно с
ссылка на некоторое пространство RGB, они
не абсолютные цветовые пространства: указать
цвет точно требует отчетности
не только значения HSL или HSV, но и
характеристики пространства RGB
на их основе, в том числе гамма
исправление в использовании.
Источник
По сути, из того, что я могу собрать, HSV и HSL не могут быть напрямую преобразованы, потому что они не являются абсолютными цветовыми пространствами, поскольку им нужны элементы пространства RGB, на которых они основаны, чтобы иметь смысл. Сейчас я не эксперт по цвету, но рискну предположить, что по этой причине вы не можете напрямую конвертировать между HSV и CMYK, и я могу предположить, что этот процесс происходит под прикрытием конверсионных движков (таких как веб-интерфейс). те), которые, кажется, конвертировать непосредственно.