【问题标题】:how to get the size of the image which in UIImage picker controller before choosing it?如何在选择之前获取 UIImage 选择器控制器中图像的大小?
【发布时间】:2011-09-19 16:03:02
【问题描述】:

我想从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];


}

这里我计算的图像大小不正确,图像库中的图像大小与我计算的图像大小到底有什么不同。 我想在选择图像之前知道图像大小 谁能帮我 提前致谢

【问题讨论】:

    标签: objective-c ios4 uiimage uiimagepickercontroller


    【解决方案1】:

    您可以像这样以 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 直到得到您想要的单位是有用的

    【讨论】:

    • 什么是 (img,100) 它显示的参数太少警告。实际上我使用的是 696kb 的图像,我得到的图像长度为 232500 字节,即 227.05078125 kb。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多