Как смешать цвета “естественно” с C#?

Предупреждение: недопустимое смещение строки 'XXX'

Это происходит, когда вы пытаетесь получить доступ к элементу массива с синтаксисом с квадратной скобкой, но вы делаете это по строке, а не по массиву, поэтому операция явно не имеет смысла .

Пример:

$var = "test";
echo $var["a_key"];

Если вы считаете, что переменная должна быть массивом, см., где она появляется и исправить там проблему.

45
задан Peter O. 2 December 2016 в 11:13
поделиться

3 ответа

"Натуральная влажная краска" немного неоднозначна; смешивание CMYK, как предложено не будет работать, потому что Вы все еще добавляете цвета.

, Если Вы хотите результаты как в Photoshop (как Jon B проверенный) необходимо использовать L*a*b* пространство. Формулы для преобразования RGB в/от Лабораторию и описание здесь .

пространство Лаборатории было специально предназначено так, чтобы линейные изменения соответствовали тому, что человеческий глаз чувствует как определенное количество цветного изменения. Это важно, потому что, например, мы более чувствительны к зеленому, чем другие цвета, потому что мы чувствуем изменения, по-другому зависящие и на оттенке и на легкости и т.д.

Попытка любых других методов, в настоящее время предлагаемых, не только приведет к цветам, которые Вы не хотите, но также и не представите "постоянно выглядящее" изменение в цвете, особенно при использовании этого для чего-то, где постоянное изменение имеет значение как градиент.

46
ответ дан Jason Cohen 26 November 2019 в 21:22
поделиться

Существует хорошая статья для преобразования RGB к L b в C# в http://www.codeproject.com/KB/recipes/colorspace1.aspx .

18
ответ дан Mark Cidade 26 November 2019 в 21:22
поделиться

Вы получаете cmyk<-> rgb преобразование бесплатно с WIC. , но это-.NET 3.0 только

3
ответ дан Lawrence Dol 26 November 2019 в 21:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: