Объединение двух изображений из uiimageviews в один uiimage с правильными позициями

У меня есть представление с двумя UIImageViews. Первый вид изображения - это картинка, которая может быть изменена, но всегда находится в одной и той же позиции. Второй вид изображения содержит изображение логотипа, его размер можно изменить, панорамировать и повернуть.

Кстати, оба uiimageviews установлены в Aspect Fit.

Когда я закончу перетаскиванием второго вида изображения, я хочу сохранить эти два изображения и нарисовать одно изображение. Но в новом uiimage мне нужно, чтобы они были расположены точно так же, как они были после того, как я закончил перетаскивать и изменять размеры второго вида uiimage.

Я перенес это объединенное изображение в новый пользовательский контроллер, который называется PreviewViewController. Здесь я хочу показать изображение в виде изображения и сохранить его, если пользователь нажмет да.

У меня почти получилось, но положение x и y сбивает меня с толку. И есть еще одна проблема, когда при рисовании второго изображения uiimageview на новом изображении его режим просмотра выглядит как Scale для заполнения и выглядит уродливо.

Вот мой код

- (UIImage *)combineImages{

    UIImage *tshirt = self.tskjorteTemplateView.image;
    UIImage *logo = self.bildeView.image;

    UIGraphicsBeginImageContext(self.tskjorteTemplateView.image.size);
    UIGraphicsBeginImageContextWithOptions(self.tskjorteTemplateView.frame.size, NO, 0.0);
    [tshirt drawInRect:CGRectMake(0,0, self.tskjorteTemplateView.frame.size.width, self.tskjorteTemplateView.frame.size.height)];
    [logo drawInRect:CGRectMake(bildeView.center.x - (bildeView.frame.size.width / 2) ,
                                bildeView.center.y - (bildeView.frame.size.height / 2), self.bildeView.frame.size.width, self.bildeView.frame.size.height)];

    UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return result;
}

и это называется здесь:

fullPreviewImage = [self combineImages];

WantToSaveViewController *save = (WantToSaveViewController *)segue.destinationViewController;
save.delegate = [self.navigationController.viewControllers objectAtIndex:0];
save.previewImage = fullPreviewImage;

0 ответов

Другие вопросы по тегам