2011-04-01 70 views
0

我有一个可导入图像的应用程序。我的应用程序不需要大图像,所以如果我在一侧看到大于512像素的图像,则调整它大小。石英在大图像操作期间崩溃

我使用一些图片大小,我从借来的功能:

http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way

大小调整功能的工作真的很好的大部分时间,但我有我的库一些大的照片是5616x3744。当我尝试调整这个图像的大小时,它有时会在执行CGContextDrawImage()时导致崩溃(大约一半的时间崩溃了,尽管一次我能够在崩溃之前处理大约20张图像)。它对于哪些图像崩溃尚不一致。

我还没有在模拟器中尝试过这个功能,但是在连接到调试器的同时,我在iPad上以开发模式运行。当应用程序崩溃时,它将退出调试器,并返回信号“0”。

我想知道是否可能存在内存问题,但是当我使用分配工具运行它时,它在崩溃之前不会超过44meg,并且我的应用程序不会收到内存警告。

调整大小操作只是分配大量的内存,导致内存不足崩溃而没有首先得到任何类型的警告?

我想我可以限制我的应用程序到更小的图像,但我想知道为什么发生崩溃,以确保它不是随机的东西,可能会咬我以后。

任何帮助,非常感谢!

谢谢你,罗恩

+0

请注意...我已经做了一些更多的调试,我可以加载10百万像素的图像,而且根本没有任何问题(我连续试了100多次)。当百万像素数量达到约二千万像素时,则例程崩溃。 – Ron 2011-04-01 03:31:14

回答

0

我做更多的调试,我认为正在发生的事情是,OS是杀害我的应用程序分配太多内存。由于它是在单个操作中完成的,所以操作系统没有机会通知我的应用程序内存不足,只会杀死应用程序。一种iPad甚至无法调整一张2000万像素照片而不被杀死的情况。希望iPad 3至少有1G内存!我的iPhone4将无问题地拍摄70万像素的照片。