NSFileManager> attributesOfItemAtPath>图像尺寸

时间:2013-12-26 21:03:49

标签: ios objective-c nsfilemanager

如何获取保存在文档目录中的图像文件的尺寸?

我可以使用以下代码获取NSFileCreationDate和NSFileSize等其他属性

NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:imageFile error:nil];
NSDate *date = (NSDate*)[attributes objectForKey:NSFileCreationDate];

2 个答案:

答案 0 :(得分:1)

正如邓肯所说,你不能这样做。但是可以使用ImageIO框架。请尝试下面的代码。

NSURL *imageFileURL = [NSURL fileURLWithPath:...]; // Put your image in a URL
CGImageSourceRef imageSource = CGImageSourceCreateWithURL((CFURLRef)imageFileURL, NULL);
if (imageSource == NULL) {
// Error loading image
...
return;
}

CGFloat width = 0.0f, height = 0.0f;
CFDictionaryRef imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, NULL);
if (imageProperties != NULL) {
CFNumberRef widthNum  = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelWidth);
if (widthNum != NULL) {
    CFNumberGetValue(widthNum, kCFNumberCGFloatType, &width);
}

CFNumberRef heightNum = CFDictionaryGetValue(imageProperties, kCGImagePropertyPixelHeight);
if (heightNum != NULL) {
    CFNumberGetValue(heightNum, kCFNumberCGFloatType, &height);
}

CFRelease(imageProperties);
}

NSLog(@"Image dimensions: %.0f x %.0f px", width, height);

答案 1 :(得分:0)

您不能在NSFileManager级别。您需要读取并解析文件的内容 - 至少是标题。

如何操作取决于文件的类型。

最简单的方法是将其作为图像加载,然后查询图像。