Я пытаюсь сделать это с навсегда. У меня есть наложение камеры. Я хочу, чтобы мое окончательное изображение было частью изображения, видимого из встроенной камеры. То, что я сделал, это сделать CGRect с размерами, равными квадрату в камере. Затем я попытался обрезать его, используя эту функцию.Обрезать изображение с помощью CGRect
- (UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect
{
CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return croppedImage;
}
Я назвал его как этот
CGRect rect = CGRectMake(10, 72, 300, 300);
UIImage *realImage = [self imageByCropping:[self.capturedImages objectAtIndex:0] toRect:rect];
Что я получаю плохое качество изображения с неправильной ориентацией.
:: EDIT ::
С ответом Нитин, я могу обрезать правильную часть экрана, но проблема в том, что обрезает вид, что следует вид камеры, "Точка зрения подтверждения. Я подозреваю, что это потому, что код Нитин использует
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
и потому, что ViewController, в котором все это происходит потому, что View Controller для подтверждения View является контроллер, в котором этот код выполняется. Я попытаюсь объяснить это с маленькой картой
CameraOverlay.xib (он использует этот XIB для создания наложения) < ===== CameraOverlayViewController ---------> ConfirmationView
Так когда сначала вызывается ViewController (кнопка на панели вкладок), он открывает камеру (UIImagePickerController) с наложением поверх нее. Затем, как только пользователь нажимает изображение, изображение отображается в ConfirmationView.
То, что я думаю, что происходит, когда UIGraphicsBeginImageContextWithOptions(self.view.frame.size, YES, 1.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
эти строки выполняется, View в то время ConfirmationView.
Примечание: я вызываю функцию в
(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
метода.
Спасибо за ваш ответ. Я думаю, что этот код будет иметь ту же проблему, что и у меня с ответом Нитина. Пожалуйста, не могли бы вы взглянуть на EDIT? – nupac