2011-07-01 1 views
3

UIImage를 UIImagePickerController를 사용하여 가져오고 있습니다. 해당 바이트/바이트 이미지를 바이트 수를 어떻게 계산할 수 있습니까?UIImage를 바이트로 변환

내가 가진 값을 사용자가 할 수 물론 1메가바이트

답변

4

의 크기보다 이미지를 더 추가하지 못할 논리를 만들 것을 사용. UIImagelength 속성이있는 NSData 개체로 변환하면 크기가 바이트로 표시됩니다. 그런 다음 원하는 단위로 크기를 쉽게 계산할 수 있습니다. 그래서 예를 들면

: 당신은, 당신이 볼 수

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

여기 UIImagePickerController를의 대리자 메서드를 다음에서 이미지 크기를 얻을 수 있습니다

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

, 나는 데이터로 이미지를 변환 한 후 [데이터 길이 ] 바이트 길이를 제공 할 수 있습니다.

0

사용자가 1MB가 넘는 이미지를 업로드하지 못하도록하는 대신 사용자가 생각하는 공간을 절약하기 위해 이미지 크기를 조정하고 압축하여 사용자에게 더 나은 서비스를 제공 할 수 있습니다. 그러나 귀하의 질문에 대답하기 위해, 한 가지 방법은 간단합니다; 나는 그가 좋아하지만 좋은 지적이야 어느 모른다 -

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


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

// do stuff 

}