假设我想创建一个 100 像素宽和 200 像素高的图像,顶部有一个 100x100 的红色方 block ,底部有一个 100x100 的棕色方 block [RGB 组件 0.6、0.4、0.2]。并说我想把它作为一个位图来做,用一个直接的 C 函数为每个像素吐出组件,一次一个像素。 [创建该图像有更简单的方法,但这里的重点是理解 iOS 位图——下次,我可能为每个像素设置任意值。]我该怎么做?
最佳答案
您要使用的 API 记录在 Apple 的 CGBitmapContext Reference 中.
使用 CGBitmapContextCreate 从大小为 的内存块创建位图上下文
height * width * pixelSize
(对于 ARGB,pixelSize 通常为 4 个字节。)然后,在处理像素后,使用 CGBitmapContextCreateImage 从位图上下文创建一个 imageRef,您就得到了图像。您可以将此图像分配给 CALayer 的内容以供查看,或在 drawRect 中绘制图像。
您可以使用 C 数组语法来访问像素:
myPixelPtr = &bitmap[pixelSize * (x + y * bitmapWidth)];
您的像素类型可以是 4 个无符号字节的 C 结构,一个用于 ARGB,或者只是原始字节。
关于iphone - iOS位图图片制作——简单示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5710894/