Создание растровых изображений iOS - простой пример - PullRequest
5 голосов
/ 19 апреля 2011

Скажем, я хочу создать изображение шириной 100 пикселей и высотой 200 пикселей, с красным квадратом 100x100 вверху и коричневым квадратом 100x100 [компоненты RGB 0.6, 0.4, 0.2] внизу.И скажем, я хочу сделать это как растровое изображение с прямой функцией C, выплевывая компоненты для каждого пикселя, по одному пикселю за раз.[Есть более простые способы создания этого изображения, но суть здесь в том, чтобы понять растровые изображения iOS - в следующий раз у меня могут быть произвольные значения для каждого пикселя.] Как бы я это сделал?

1 Ответ

7 голосов
/ 19 апреля 2011

API-интерфейсы, которые вы хотите использовать, задокументированы в CGBitmapContext Reference от Apple .

. Используйте CGBitmapContextCreate для создания растрового контекста из блока памяти размером

height * width * pixelSize
* 1007.* (pixelSize обычно составляет 4 байта для ARGB.) Затем, поиграв с пикселями, используйте CGBitmapContextCreateImage, чтобы создать imageRef из контекста растрового изображения, и у вас будет ваше изображение.Вы можете присвоить это изображение содержимому CALayer для просмотра или нарисовать изображение внутри drawRect.

Вы можете использовать синтаксис массива C для доступа к пикселям:

myPixelPtr = &bitmap[pixelSize * (x + y * bitmapWidth)];

Ваш тип пикселяможет структура C из 4 байтов без знака, по одному для ARGB, или просто необработанных байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...