我遇到UIImage内存大小问题。
当您有320 * 320分辨率的图像数据(png)时,将图像加载到内存时,
使用[UIImage imageWithData:],生成的UIImage将占用320 * 320 * 4?
屏幕尺寸(分辨率)会影响图像的内存使用吗?
下面的代码会占用myImage的两倍内存大小还是只占用一个图像内存大小? (320 * 320 * 4)* 2 vs(320 * 320 * 4)?或其他什么?
UIImage* myImage = [UIImage imageWithData:];
myImage = [myImage scaleToSize:];
当scaleToSize定义为
时- (UIImage*)scaleToSize:(CGSize)size
{
// Create a bitmap graphics context
// This will also set it as the current context
UIGraphicsBeginImageContext(size);
// Draw the scaled image in the current context
[self drawInRect:CGRectMake(0, 0, size.width, size.height)];
// Create a new image from current context
UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
// Pop the current context from the stack
UIGraphicsEndImageContext();
// Return our new scaled image
return scaledImage;
}
答案 0 :(得分:2)
检查内存分配
如果要测试特定图像,请在使用Instruments时在iPhone / Simulator中运行应用程序。
确保选择合适的目标。运行程序时,您将看到特定分配占用的内存空间。
在跑步时
您将看到窗口中分配的对象。就像这个,我附上了iTunes。
答案 1 :(得分:0)
显然,图像越大,您将使用的内存越多,一次加载到内存中的图像数量也是如此。