将UIImage转换为字节

时间:2011-07-01 09:57:32

标签: iphone uiimageview byte uiimagepickercontroller nsdata

我使用UIImagePickerController获取UIImage。如何计算该图像保持的字节数,单位为kb / mb?

使用这些值我必须制作逻辑,用户无法添加大于1MB的图像

3 个答案:

答案 0 :(得分:4)

当然可以。将UIImage转换为NSData对象,该对象具有length属性,该对象将为您提供以字节为单位的大小。然后,您可以轻松地以您需要的单位计算尺寸。

例如:

    UIImage *img = [UIImage imageNamed:@"some.png"];
    NSData *dataObj = UIImageJPEGRepresentation(img, 1.0);
    int bytes = [dataObj length];
    //convert into whatever unit you need

答案 1 :(得分:1)

您可以通过以下UIImagePickerController的委托方法获取图像大小

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo{
     if([UIImageJPEGRepresentation(image, 1.0) length]> MAX_SIZE)
     {
         //Code here
     }
}

在这里,您可以看到,我已将Image转换为数据,[数据长度]可以给出字节长度。

答案 2 :(得分:0)

与其阻止用户上传超过1MB的图像,您可以通过缩放和压缩图像来更好地为用户服务,以节省我怀疑的空间。但是要回答你的问题,一种方法就是:

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


NSData *imageData = UIImagePNGRepresentation(image); // Or UIImageJPEGRepresentation 
long sizeInBytes = [imageData length];

// do stuff

}