(iphone)将png加载到UIImage比png二进制大小占用更多内存?
我正在加载100s 4k-8k png文件(768*768分辨率),总共不到1mg 虽然我偶尔会将它们转换为UIImage并调整图像大小/组合图像,(iphone)将png加载到UIImage比png二进制大小占用更多内存?,iphone,png,uiimage,Iphone,Png,Uiimage,我正在加载100s 4k-8k png文件(768*768分辨率),总共不到1mg 虽然我偶尔会将它们转换为UIImage并调整图像大小/组合图像, 我惊讶地看到ipad设备因为图像加载导致内存警告而死亡 转换为UIImage是否比文件的实际字节大小占用更多内存 谢谢。这是因为png被解压缩到内存中,占用了更多内存。每个解压缩的图像将占用768×768×4=2.25兆字节的内存。 < P>你可能想考虑如何加载图像,如果它们不是同时显示的话。这里和其他地方都有很多关于这方面的线索,例如 UIIma
我惊讶地看到ipad设备因为图像加载导致内存警告而死亡 转换为UIImage是否比文件的实际字节大小占用更多内存
谢谢。这是因为png被解压缩到内存中,占用了更多内存。每个解压缩的图像将占用768×768×4=2.25兆字节的内存。 < P>你可能想考虑如何加载图像,如果它们不是同时显示的话。这里和其他地方都有很多关于这方面的线索,例如
UIImage-imageNamed
将缓存图像(有时苹果的缓存有点问题,无法正确释放),而UIImage-imageWithData
将不会,因此一旦不再显示,内存将被释放。两者都有优点和缺点,这取决于你的环境,所以试着对它们的区别有一个很好的理解 啊。。巨大的差异。。有没有一种方法可以告诉(大约)一个给定的png在解压缩时会占用多少内存?是的-宽度x高度x 4给出了以字节为单位的大小-对于任何解压缩的图像格式,公式都是相同的,因为每个像素都会有4个字节大。啊,压缩的png文件大小是4k还是40k无关紧要?它会被解压到宽*高*4?此外,png是否为PNGCrush(正如苹果的xcode所做的那样)在解压时与文件大小无关?不,因为当它加载到内存中时,它是未压缩的。如果您知道PNG不包含alpha通道数据,则可以节省一些空间,然后您可以将其存储为RGB而不是RGBA。不过我没有尝试过。我认为,该图像本身只需要320x320x4,但是一些额外的内存将占用画布上放置图像的视图(即UIImageView)。谢谢,我实际上是从sqlite加载它们,其中包含UIImageWithData。尽管如此,我还是会立即加载它们。正如你所说,我可能需要重新考虑如何保留/丢弃图像