title: Taking a picture from the camera and show it in a UIImageView
body: <p>I have a view with some fields (name, price, category) and a segmented control, plus this button to take picture.
  <br>If I try this on the simulator (no camera) it works properly: I can select the image from the camera roll, edit it and go back to the view, which will show all the fields with their contents . 
  <br>But on my iphone, when I select the image after the editing and go back to the view, all the fields are empty exept for the UIImageView.<br>I also tried to save the content of the fields in variables and put them back in the "viewWillApper" method, but the app crashes.
  <br>Start to thinking that maybe there is something wrong methods below</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>I found the solution <a href="http://iphonedevelopertips.com/graphics/how-to-scale-an-image-using-an-objective-c-category.html" rel="nofollow">here</a>. I defined a new method to the UIImage class. (follow the link for more information).<br>Then I worked on the frame of the UIImageView to adapt itself to the new dimension, in landscape or portrait.</p>
  
  <pre><code>-(IBAction)takePhoto:(id)sender {
      if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
          self.imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
          self.imgPicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
      } else { 
          imgPicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
      }
      [self presentModalViewController:self.imgPicker animated:YES];
  }
  
  -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
      [picker dismissModalViewControllerAnimated:YES];
  
      NSDate *date = [NSDate date];
      NSString *photoName = [dateFormatter stringFromDate:date];    
      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUs    erDomainMask, YES);
      NSString *documentsDirectory = [paths objectAtIndex:0];
      imagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.png", photoName]];
  
      UIImage *picture = [info objectForKey:UIImagePickerControllerOriginalImage];
  
      // ---------RESIZE CODE--------- //
      if (picture.size.width == 1936) {
          picture = [picture scaleToSize:CGSizeMake(480.0f, 720.0f)];
      } else {
          picture = [picture scaleToSize:CGSizeMake(720.0f, 480.0f)];
      }
      // --------END RESIZE CODE-------- //
  
      photoPreview.image =  picture;
  
      // ---------FRAME CODE--------- //
      photoPreview.contentMode = UIViewContentModeScaleAspectFit;
      CGRect frame = photoPreview.frame;
      if (picture.size.width == 480) {
          frame.size.width = 111.3;
          frame.size.height =167;
      } else {
          frame.size.width = 167;
          frame.size.height =111.3;
      }
      photoPreview.frame = frame;
      // --------END FRAME CODE-------- //
  
  
      NSData *webData = UIImagePNGRepresentation(picture);
      CGImageRelease([picture CGImage]);
      [webData writeToFile:imagePath atomically:YES];
      imgPicker = nil;
  }
  </code></pre>
  
  <p>Now I have a new issue! If I take a picture in landscape, and try to take another one in portrait, the app crashs. Do I have to release something?</p>