Не удается увидеть UIImage после того, как он был сохранен и отправлен на сервер из CoreData?

Первая часть кода - это то, где кнопка камеры нажата, но не перед проверкой, заполнено ли текстовое поле, затем проверяется тип камеры. Здесь все нормально, как мне кажется. Как только картинка была сделана, я затем изменяю размер изображения, чтобы уменьшить его размер, затем преобразовать его в строку NSString, в которой затем данные NSString сохраняются в CoreData, а затем отправляются на сервер для показа на экран.

Это кнопка камеры

-(IBAction)takePicture:(UIButton*)sender {

if (printedname.text.length ==0){

 UIAlertView*alert=[[UIAlertView alloc]initWithTitle:
 @"Please enter Name"message:@""delegate:self cancelButtonTitle:
 @"Dismiss"otherButtonTitles:nil];[alertshow];return;

}

UIImagePickerController *pictureTaker = [[UIImagePickerController alloc] init];

pictureTaker.delegate = self;

    if ([UIImagePickerController isSourceTypeAvailable:
     UIImagePickerControllerSourceTypeCamera]) {
     pictureTaker.sourceType = UIImagePickerControllerSourceTypeCamera;

} else if([UIImagePickerController isSourceTypeAvailable:
         UIImagePickerControllerSourceTypeSavedPhotosAlbum]){

         pictureTaker.sourceType  = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

}

[self presentViewController:pictureTaker animated:YES completion:nil];}

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

NSLog(@"%@", info);
NSString * mediaType = [info objectForKey:UIImagePickerControllerMediaType];

if([mediaType isEqual:(__bridge NSString *)kUTTypeImage]){

    [pictureTaker dismissViewControllerAnimated:YES completion:nil];

    base64Image = [info objectForKey:UIImagePickerControllerEditedImage];

    base64Image = [info objectForKey:UIImagePickerControllerOriginalImage];

    CGSize newSize = CGSizeMake(100.0f,60.0f);
    UIGraphicsBeginImageContext(newSize);
    [base64Image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    base64Image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    NSData *data = UIImageJPEGRepresentation(base64Image, 1.0);
    base64string = [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];

    NSLog(@" image (%@), width: %.0f, height: %.0f, scale: %0.2f, string len %lu",base64Image,base64Image.size.width,
          base64Image.size.height, base64Image.scale,(unsigned long)base64string.length); 
}

UIImageWriteToSavedPhotosAlbum(base64Image, self, NULL , NULL);

}

Похоже, что отправка в порядке сохранения, но в некотором смысле потерялась на полпути, может кто-нибудь помочь, поскольку Iv> пытался разобраться с этим уже несколько дней, Iv включен ниже вывода консоли, чтобы вы могли видеть> также, спасибо всем, кто может помочь,

UIImagePickerControllerMediaType = "public.image";
UIImagePickerControllerOriginalImage = "<UIImage: 0x17056260> size 
{ 2448, 3264 }
orientation 3 scale 1.000000";

}

1 ответ

Решение

Мне удалось решить проблему с кодом ниже:

if (self.base64Image!= nil){

    NSString *strImageData = [self.base64Image stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];

    NSString *param =[NSString stringWithFormat:@"photo=%@", strImageData];

    [values addObject:param];
}
Другие вопросы по тегам