Objective-c:加载部分图像文件

Objective-c:加载部分图像文件,objective-c,opengl,core-graphics,Objective C,Opengl,Core Graphics,我在CGAPI中搜索,但没有找到任何方法来加载给定图像中的像素子集 我需要在运行时在openGL中加载一个非常大的图像(要求我不能在编译时调整它的大小)。纹理大小太大(>GL\u MAX\u texture\u size),所以我在其他较小的图像中对其进行细分,这样openGL就不会抱怨了 现在我要做的就是加载大图像: NSData *texData = [[NSData alloc] initWithContentsOfFile:textureFilePath]; UIImage *srcIm

我在CGAPI中搜索,但没有找到任何方法来加载给定图像中的像素子集

我需要在运行时在openGL中加载一个非常大的图像(要求我不能在编译时调整它的大小)。纹理大小太大(>GL\u MAX\u texture\u size),所以我在其他较小的图像中对其进行细分,这样openGL就不会抱怨了

现在我要做的就是加载大图像:

NSData *texData = [[NSData alloc] initWithContentsOfFile:textureFilePath];
UIImage *srcImage = [[UIImage alloc] initWithData:texData];
然后我使用CG使用CGImageCreateWithImageInRect()对图像进行细分。。。并准备好发送到openGL


问题是,在iPodtouch上,该应用程序崩溃是因为加载大图像后占用了太多内存。我想只加载感兴趣的像素,而不必创建一个巨大的内存峰值,然后我可以释放内存并加载我需要的下一个块。有人知道这是否可能

为什么不制作一堆更小的图像文件呢?我不能说太多,但这是应用程序的一项要求,我想知道在技术上是否可以为给定的图像加载像素子集。您可以加载整个图像,并使用核心图形创建图像切片。这应该相当容易。这正是我在主题中所做和描述的,应用程序崩溃,因为加载整个图像需要占用大量内存…我一次只需要加载一个片段,我认为你无法加载图像文件的一部分。如果必须这样做,我将把它分解成块(这些块可以存储为bytearray)并使用哈希映射块。