The first part of the code is where the camera button is pressed but not before checking if a textfield has been filled, this then checks camera type. All normal here me thinks.Once the picture has been taken I then resize the image so that its of smaller size then convert it to a NSString to which then the NSString data is stored in CoreData and then sent off to a server to be shown on screen.
This is the camera press button
-(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);
}
It seem to send ok save but kind of get's lost half way through, can anyone help as Iv been >trying to sort this out for days now, Iv included below the console output for you to see >aswell, thanks to anyone that can help.
UIImagePickerControllerMediaType = "public.image";
UIImagePickerControllerOriginalImage = "<UIImage: 0x17056260> size
{ 2448, 3264 }
orientation 3 scale 1.000000";
}
I managed to fix the problem with the code below:
if (self.base64Image!= nil){
NSString *strImageData = [self.base64Image stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];
NSString *param =[NSString stringWithFormat:@"photo=%@", strImageData];
[values addObject:param];
}