2016-08-30 11 views
0

이미지 선택 도구에서 UIImage을 선택합니다. 그런 다음 선택한 이미지를 바이트 배열로 서버에 전달하려고합니다. 그래서이 대표자에서 나는 이와 같이 나의 선택된 이미지의 길을 얻고있다.UIImagePicker 이미지를 바이트 배열로 변환하는 방법 objective-c

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info 

filePath=info[UIImagePickerControllerReferenceURL]; 

그런 다음 바이트 배열로 변환하면됩니다.

NSData *data = [NSData dataWithContentsOfURL:filePath]; 
NSUInteger len = [data length]; 
Byte *byteData = (Byte*)malloc(len); 
memcpy(byteData, [data bytes], len); 
NSLog(@"----BITE DATA----%@",byteData); 

그러나이 data은 항상 nil이됩니다. 그게 왜? 도와주세요. 감사

+0

내 업데이트 된 코드를 참조하십시오 .. – vaibhav

답변

0

PLZ 코드 아래 사용하여 이미지를 얻을 didFinishPickingMediaWithInfo 방법 안에이

UIImage *Image = (UIImage*)[info valueForKey:UIImagePickerControllerOriginalImage]; 
     NSData *imgData = UIImageJPEGRepresentation(Image, 1); //1 it represents the quality of the image. 
     NSLog(@"Size of Image(bytes):%d",[imgData length]); 
1

를 사용합니다.

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

    UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 
    NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(chosenImage)]; 
    NSLog(@"image string : %@",info[UIImagePickerControllerEditedImage]); 

    // save using nsuserdefaults or any other your local database 
    [[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"imageData"]; 
} 

이제 아래 코드를 사용하여 어디에서나 표시하십시오.

NSData *imageData = [[NSUserDefaults standardUserDefaults] valueForKey:@"imageData"]; 
UIImage *image = [UIImage imageWithData:imageData]; 
self.imageView.image = image; 
0
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 

    UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 


    NSData* imageData=UIImageJPEGRepresentation(image,1.0); 

    // Add selected imageData in Array and pass imageData to server 
    [imageDataArray addObject:imageData]; 


}