Nsdata.length返回错误的图像大小

时间:2014-01-16 11:45:09

标签: ios iphone file uiimage nsdata

 NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString* documentsDirectory = [paths objectAtIndex:0];

 UIImage *imageCaptured=[imagePickerInfo objectForKey:UIImagePickerControllerOriginalImage];

 NSData *imgchekc=UIImageJPEGRepresentation(imageCaptured,1);        
 NSUInteger fileLength = [imgchekc length];
 NSLog(@"Size of Image(bytes):%d %d ",[imgchekc length],fileLength);
  • 嗨,我正在使用此代码获取限制用户的图像大小(以字节为单位) 上传> 5MB大小的图片。
  • 但这段代码给了我10698536字节的4.4MB图像 错误。请告诉我如何获得实际文件大小。

1 个答案:

答案 0 :(得分:2)

你需要检查同样的事情。您在磁盘上有一个加载到映像中的文件。然后,将该图像转换为JPEG数据(使用UIImageJPEGRepresentation)。此数据现在与磁盘上的数据没有关系(就大小而言)。

如果您只想将文件上传到磁盘上,请不要将其加载到图像中,然后转换数据,只需上传即可。要获得文件大小,您可以使用NSFileManagerattributesOfItemAtPath:error:NSFileSize

如果您想转换为JPEG,那么您的代码就可以了,您可能不希望1使用compressionQuality,因为这会导致更多的数据。试试0.75,看看有什么不同。