2011-06-21 118 views
1

我想從UIImagePickerControllerSourceTypePhotoLibrary獲得圖像,在從圖像庫中選擇圖像之前,我想知道該特定圖像的內存大小。我正在使用如何在UIImage拾取器控制器選擇它之前獲取圖像的大小?

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 

{ 

    UIImage * img = [info objectForKey:@"UIImagePickerControllerEditedImage"]; 
    size_t imageSize = CGImageGetBytesPerRow(img.CGImage) * CGImageGetHeight(img.CGImage); 
    printf("\n the image size is :%zd",imageSize); 
    [self useImage:img]; 
    [[picker parentViewController] dismissModalViewControllerAnimated:NO]; 
    UINavigationController* navController = self.navigationController; 
    UIViewController* controller = [navController.viewControllers objectAtIndex:0]; 
    [controller dismissModalViewControllerAnimated:NO]; 


} 

這裏我正在計算的圖像大小不正確,圖像庫中的圖像大小究竟與我正在計算的圖像大小有什麼不同。 我想採摘圖像 誰能幫我 在此先感謝前需要了解的圖像尺寸

+0

你試過我的答案? –

回答

3

呦可以以JPEG格式讓你攝取的圖像的大小是這樣的:

UIImage * img = [info objectForKey:@"UIImagePickerControllerEditedImage"]; 
NSData *imageData = UIImageJPEGRepresentation(img, 1.0); 
yourImgSize = [imageData length]; 

還是在PNG格式

UIImage * img = [info objectForKey:@"UIImagePickerControllerEditedImage"]; 
NSData *imageData = UIImagePNGRepresentation(img, 1.0); 
yourImgSize = [imageData length]; 

編輯

我噸將以字節爲單位,你可能會認爲有用除以1024,直到你到達你想要的單位

+0

什麼是(img,100)它顯示爲太少的參數警告。實際上,我使用上面的696kb圖像我得到的圖像長度爲232500bytes,這是227.05078125 kb。 –

+0

不好打字,改爲1.0我會更新。 –