从iPhone上的图像获取像素数据

时间:2011-03-01 10:40:45

标签: iphone cocoa-touch core-graphics

我想将位图图像用作iphone游戏中关卡的“地图”。基本上它都是关于矩形世界中障碍物的位置。障碍物将采用颜色编码 - 白色像素位于此处,没有障碍物。黑色表示此时有一个。

现在我需要使用这些数据做两件事:(a)显示水平图,(b)用于游戏内计算。因此,一般来说,我需要一种方法来从位图读取数据并使用这些信息创建一些数据结构(类似矩阵) - 将位图叠加到水平图形上以及计算碰撞等。

我该怎么办?有没有简单的方法从图像中读取数据?什么是保持图像的最佳格式?

1 个答案:

答案 0 :(得分:1)

您是否了解了Texture2D如何将图像文件转换为OpenGL纹理?

提示:在Texture2D.m

中查看此方法
- (id) initWithCGImage:(CGImageRef)image orientation:(UIImageOrientation)orientation sizeToFit:(BOOL)sizeToFit pixelFormat:(Texture2DPixelFormat)pixelFormat filter:(GLenum) filter

在3D应用程序中,将这种表示用于高度贴图是很常见的,在高度贴图中,您使用的纹理颜色范围从黑色到白色(白色代表最大高度)

例如,从中:

Height Map Texture

对此:

Height Map Representation

那只是告诉你,你的表现并不那么疯狂:)。

关于阅读位图,我还建议你阅读this(以防你想要更深入)

希望我帮了一下!