大小的图像

大小的图像

问题描述:

从时代到时代,我必须知道图像的宽度和高度。我使用下面的代码:大小的图像

UIImage *imageU = [UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myImage.png"]]; 

CGFloat imageW = CGImageGetWidth(imageU.CGImage); 
CGFloat imageH = CGImageGetHeight(imageU.CGImage); 

我的问题是,如果有任何其他方式知道图像的宽度和高度,以像素为单位,而无需加载一个变量的图像,这可能消耗内存。可以直接从文件中读取尺寸而无需加载整个图像?

这必须适用于PNG和JPEG。

谢谢。

+1

不是你的问题的答案,但你知道UIImage有'size'属性,对吧? – 2010-05-01 21:28:20

+0

是的,我知道.... – SpaceDog 2010-05-02 01:59:07

您可以解析标题中包含大小信息的PNG文件。请参阅Get size of image without loading in to memory

(顺便说一句,你可以用imageU.size来获取图像的CGSize。)

我不认为你可以在这个“免费”做,在内存使用方面来讲。您可以创建一个NSInputStream并读取/解析IHDR部分的数据(遵循@ KennyTM链接),然后丢弃所有内容。