Измените значения HSL растрового изображения, используя c # - PullRequest
3 голосов
/ 14 июля 2011

Я хотел бы знать, как я могу изменить значения HSL растрового изображения, используя C #.Должна быть возможность загружать растровое изображение и изменять его значения HSL для каждого пикселя.

Ответы [ 2 ]

0 голосов
/ 14 июля 2011

Вы можете использовать LockBits на своем растровом изображении, что даст вам объект BitmapData .

С BitmapData вы можете:

  1. Используйте «небезопасные» блоки кода для перебора каждого пикселя и изменения значения.
  2. Используйте Marshal.Copy , чтобы скопировать пиксели в массив, изменить значения в массиве, а затем скопироватьвернемся к источнику растрового изображения.

Подробное описание этой темы можно найти здесь .

Вот статья о RGB ->HSL , который может оказаться полезным.

0 голосов
/ 14 июля 2011

Вам нужно будет просмотреть RGB каждого пикселя, преобразовать его в HSL, изменить значения HSL, преобразовать обратно в RGB и записать новые данные пикселей в растровое изображение.К сожалению, System.Drawing не имеет встроенной функциональности HSL в RGB (хотя RGB и HSL существует).

Ознакомьтесь со следующей статьей проекта кода для класса, который может выполнять двусторонние преобразования RGB / HSL: http://www.codeproject.com/KB/recipes/colorspace1.aspx

...