将来自uiimageviews的两个图像组合成一个具有正确位置的uiimage

时间:2012-10-01 19:54:13

标签: ios xcode uiimageview core-graphics

我有两个UIImageViews的视图。第一个uiimageview是一张图片,可以更改,但始终位于相同的位置。第二个uiimageview包含一个徽标的uiimage,这个uiimageview可以调整大小,平移和旋转。

顺便提一下,两个uiimageviews都设置为Aspect Fit。

当我完成拖动和缩放第二个uiimageview时,我想保存这两个uiimages,并绘制一个单独的uiimage。但是在新的uiimage中,我需要将它们完全按照我完成拖动和调整第二个uiimageview后的位置进行定位。

我将这个组合的uiimage推送到一个名为PreviewViewController的新uiviewcontroller。在这里,我想在imageview中显示uiimage,如果用户按下yes则保存。

我差点搞定了,但是x和y的位置让我感到困惑。 还有另外一个问题,当将第二个uiimageview图像绘制到新图像上时,其视图模式看起来像缩放以填充它看起来很丑。

继承我的代码

- (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 个答案:

没有答案