У меня есть массив пикселей (имеющих значения х и у). как установить цвет точек пикселей на красный - PullRequest
0 голосов
/ 01 марта 2012

я просто хочу знать Как установить цвет определенного пикселя на красный? предположим, x = 37 y = 54, и я хочу изменить цвет этого пикселя на красный. Я понятия не имею, как это сделать. Я получил значения точек вокруг определенного объекта в массив пикселей с помощью квадратного алгоритма.

Ответы [ 3 ]

0 голосов
/ 01 марта 2012

Вы не можете изменить пиксели существующего CGImage.Вы должны создать новый CGImage с измененным пикселем.Вот шаги:

  1. Создать CGBitmapContext с CGBitmapContextCreate.
  2. Ввести существующий CGImage в него используя CGContextDrawImage.
  3. Нарисуйте пиксель, используя CGContextSetFillColorWithColor и CGContextFillRect.
  4. Создайте новый CGImage, используя CGBitmapContextCreateImage.

Вместоиспользуя CGContextSetFillColorWithColor и CGContextFillRect, вы можете настроить точечные данные непосредственно после получения указателя на них с помощью CGBitmapContextGetData.Это было бы быстрее, если вы собираетесь делать это много.

Кроме того, если вы собираетесь делать это много, вы захотите создать растровый контекст и нарисовать исходное изображение в нем простоодин раз, и держите растровый контекст вокруг для дидлинга.Но создание нового CGImage из растрового контекста может быть узким местом.

0 голосов
/ 01 марта 2012

Если вы работаете с CCSprite, просто измените цвет, используя свойство color спрайта:

mySprite.color=ccc3(123,234,12); //use whatever color values for red, green, blue you want

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

для чистого красного, используйте ccc3(255,0,0)

0 голосов
/ 01 марта 2012

Ваш вопрос довольно расплывчатый, но вот общий ответ:

Цвета пикселей обычно представлены 3 или 4 байтами:

Красный - Зеленый - Синий - (Альфа) * ​​1005 *

В используемом вами SDK должна быть доступна функция, позволяющая установить эти значения для пикселя.Вы должны установить красный на 255, а остальные на 0, если вы хотите чистый красный цвет.

...