2012-12-26 3 views
2

2 UIImageView에서 2 개의 이미지를 "올바른"위치, 각도, 비율 비율로 이미지에 병합하고 싶습니다.2 UIImageView에서 2 이미지를 1 이미지로 병합하는 방법

내 프로젝트에서

, 2 UIImageView에 있다 - topImageView 회전, 드래그 할 수있는 오버레이있는 UIImageView이며, 규모

내가 의한 2 개 이미지하지만 잘못된 위치를 그릴 병합 된 이미지를 저장할 수 있습니다 - 이미지 뷰는 주요 UIImageView에 입니다 , 각도, 비율 비율.

UIImage *img = topImageView.image; 
UIImage *bottomImg = self.imageView.image; 
CGSize bounds = self.imageView.image.size; 

UIGraphicsBeginImageContext(bounds); 
CGContextRef ctx = UIGraphicsGetCurrentContext(); 
CGContextTranslateCTM(ctx, topImageView.image.size.width * 0.5, topImageView.image.size.height * 0.5); 
CGFloat angle = atan2(topImageView.transform.b, topImageView.transform.a); 
CGContextRotateCTM(ctx, angle); 

[topImageView.image drawInRect:CGRectMake(-topImageView.image.size.width * 0.5, 
              -topImageView.image.size.height * 0.5, 
              topImageView.image.size.width, 
              topImageView.image.size.height)]; 
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

UIGraphicsBeginImageContext(bounds); 
[bottomImg drawInRect:CGRectMake(0, 0, bounds.width, bounds.height)]; 
[newImage drawInRect:CGRectMake(topImageView.frame.origin.x, 
           topImageView.frame.origin.y, 
           newImage.size.width, 
           newImage.size.height)]; 
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

나에게 도움이되는 어떤 생각 :

이 내 코드? 고마워요!

+0

가 중복 시도 http://stackoverflow.com/questions/9208951/ios-merging- 두 이미지의 다른 크기 –

답변

6

하위 뷰로 두 이미지를 모두 UIView에 추가하십시오. 당신이 이미지에 무엇을해야하고 그래서 같이있는 UIView의 스냅 샷을 :

UIGraphicsBeginImageContext(view.bounds.size); 
[view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *MergedImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
2

#pragma mark - Marge two Images 

- (UIImage *) addImageToImage:(UIImage *)img withImage2:(UIImage *)img2{ 

    CGSize size = CGSizeMake(imageView.image.size.width, imageView.image.size.height); 
    UIGraphicsBeginImageContext(size); 

    CGPoint pointImg1 = CGPointMake(0,0); 
    [img drawAtPoint:pointImg1]; 

    CGPoint pointImg2 = CGPointMake(0,0); 
    [img2 drawAtPoint: pointImg2]; 

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

    return result; 
} 


[self addImageToImage:imageView.image withImage2:imageView2.image];