Как получить размер изображения, которое в контроллере выбора UIImage, прежде чем выбрать его? - PullRequest
1 голос
/ 21 июня 2011

Я хочу получить изображения из UIImagePickerControllerSourceTypePhotoLibrary, прежде чем выбрать изображение из библиотеки изображений, я хочу узнать объем памяти этого конкретного изображения.Я использую

- (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];


}

здесь размер изображения, который я вычисляю, неверен, чем именно размер изображения в библиотеке изображений отличается от размера изображения, которое я вычисляю.И я хочу знать размер изображения, прежде чем выбрать изображение Может кто-нибудь помочь мне Заранее спасибо

1 Ответ

3 голосов
/ 21 июня 2011

Вы можете получить размер выбранного изображения в формате 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];

EDIT

Это будет в байтах, вы можете посчитать полезным делить на 1024, пока не доберетесь до нужной вам единицы

...