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

时间:2012-07-03 14:57:00

标签: objective-c opengl core-graphics

我在CG API中搜索但我没有找到任何方法只加载给定图像中的像素子集。

我需要在openGL AT RUNTIME中加载一个非常大的图像(要求是我无法在编译时调整它的大小)。纹理尺寸太大(> GL_MAX_TEXTURE_SIZE)所以我将其细分为其他较小的图像,因此openGL不会抱怨。

现在这就是我加载大图片的方法:

NSData *texData = [[NSData alloc] initWithContentsOfFile:textureFilePath];
UIImage *srcImage = [[UIImage alloc] initWithData:texData];

然后我使用CG来使用CGImageCreateWithImageInRect()来细分图像......并准备将其发送到openGL。

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

0 个答案:

没有答案