Не удается увидеть 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];
}