大小的图像
问题描述:
从时代到时代,我必须知道图像的宽度和高度。我使用下面的代码:大小的图像
UIImage *imageU = [UIImage imageWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"myImage.png"]];
CGFloat imageW = CGImageGetWidth(imageU.CGImage);
CGFloat imageH = CGImageGetHeight(imageU.CGImage);
我的问题是,如果有任何其他方式知道图像的宽度和高度,以像素为单位,而无需加载一个变量的图像,这可能消耗内存。可以直接从文件中读取尺寸而无需加载整个图像?
这必须适用于PNG和JPEG。
谢谢。
答
您可以解析标题中包含大小信息的PNG文件。请参阅Get size of image without loading in to memory。
(顺便说一句,你可以用imageU.size
来获取图像的CGSize。)
答
我不认为你可以在这个“免费”做,在内存使用方面来讲。您可以创建一个NSInputStream并读取/解析IHDR
部分的数据(遵循@ KennyTM链接),然后丢弃所有内容。
不是你的问题的答案,但你知道UIImage有'size'属性,对吧? – 2010-05-01 21:28:20
是的,我知道.... – SpaceDog 2010-05-02 01:59:07