Creación de imágenes de bitmap de iOS: ejemplo simple

Digamos que quiero crear una image de 100 píxeles de ancho y 200 píxeles de alto, con un cuadrado rojo de 100×100 en la parte superior y un cuadrado marrón de 100×100 [componentes RGB 0.6, 0.4, 0.2] en la parte inferior. Y diga que quiero hacerlo como un bitmap, con una function C directa escupir los componentes para cada píxel, un píxel a la vez. [Hay forms más fáciles de crear esa image, pero el punto aquí es entender bitmaps de iOS; la próxima vez, podría tener valores arbitrarios para cada píxel.] ¿Cómo haría eso?

Las API que desea utilizar están documentadas en la Referencia de CGBitmapContext de Apple.

Use CGBitmapContextCreate para crear un context de bitmap desde un bloque de memory de tamaño

height * width * pixelSize 

(pixelSize suele tener 4 bytes para ARGB). Luego, después de jugar con los píxeles, use CGBitmapContextCreateImage para crear un imageRef desde el context de bitmap y tenga su image. Puede asignar esta image al contenido de un CALayer para verla, o dibujar la image dentro de un drawRect.

Puede usar la syntax de la matriz C para acceder a los píxeles:

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

Su tipo de píxel puede tener una estructura C de 4 bytes sin firmar, uno para ARGB o solo bytes sin formatting.