So the picture appeared to have been taken in landscape, and I simply wanted it to appear sideways in portrait. I figured that if the image was actually in landscape, then it was appearing stretched and truncated because it's width was larger than its height. So I used this as an if condition in the following way, and it worked for me.
UIImage *imageAsTaken = [info objectForKey:UIImagePickerControllerOriginalImage];
if (imageAsTaken.size.width > imageAsTaken.size.height) {
UIImage *imagePortrait = [UIImage imageWithCGImage:imageAsTaken.CGImage scale:imageAsTaken.scale orientation:UIImageOrientationRight];
self.image = imagePortrait;
[self.imageView setContentMode:UIViewContentModeScaleAspectFill];
self.imageView.image = self.image;
NSLog(@"landscape");
}
else {
self.image = [info objectForKey:UIImagePickerControllerOriginalImage];
[self.imageView setContentMode:UIViewContentModeScaleAspectFill];
self.imageView.image = self.image;
NSLog(@"portrait");
}
Now this may not be the "official" or "right" way to solve it, but it makes sense and it works and anyone reading this can feel free to use this solution. Thanks to Krishna Kumar for the AVCapture answer as well.