2011-07-01 160 views
3

我正在使用UIImagePickerController獲取UIImage。我如何計算kb/mb中該圖像的字節數?將UIImage轉換爲字節

使用值我不得不做出這樣的用戶不能添加圖像比1MB

回答

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

你也可以使用'UIImagePNGRepresentation(IMG)' – akashivskyy

+0

當然 - 我不知道他更喜歡哪一個,但是這是一個很好的點。 +1 – Pripyat

+0

謝謝大衛..它的工作 – Tariq

1

可以從以下的UIImagePickerController的委託方法

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

在這裏,可以看到得到的圖像尺寸,我已轉換圖像轉換成數據,並[數據長度]可以給字節長度。

0

與其阻止用戶上傳超過1MB的圖片,您可以通過縮放和壓縮圖片來更好地爲用戶服務,以節省我懷疑的空間。然而,要回答你的問題,一種方法可能就是這樣。

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


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

// do stuff 

}