2010-12-07 4 views
11

나는 imageA (사용자 iPhone 카메라에서 가져옴)와 imageB (투명 알파 공간이 많은 바보 같은 하숙인이있는 이미지)를 가지고 있습니다. 내가하고 싶은 것이2 개의 UIImages를 병합합니다.

,이 두 이미지를 병합 다른 일을 imageC로 저장 한 후 imageA 이상 imageB을 누워,하는 것입니다.

이 방법이 있습니까?

건배

지금까지

-(void)merge 
{ 
    CGSize size = CGSizeMake(320, 480); 
    UIGraphicsBeginImageContext(size); 

    CGPoint thumbPoint = CGPointMake(0,0); 
    UIImage *imageA = imageView.image; 
    [imageA drawAtPoint:thumbPoint]; 

    UIImage* starred = [UIImage imageNamed:@"imageB.png"]; 

    CGPoint starredPoint = CGPointMake(0, 0); 
    [starred drawAtPoint:starredPoint]; 

    UIImage *imageC = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    imageView.image = imageC; 
} 

가 나는 것하지만 그 코드는 (올바른 보이는 내가

+0

사랑이 하나의 단순. –

답변

3

여기에 잘못 뭘하는지 잘 모릅니다/볼 수없는이있어 스레드 안전성을 위해 CGBitmapContext을 사용하도록 변환하는 것이 좋습니다), imageB은 JPEG가되어야하나요? JPEG는 투명도를 지원하지 않으므로 블렌딩이 작동하려면 실제로는 PNG 여야합니다. 망막 지원을 위해 사용한다는 것을

+0

는 png가되는 것을 의미했지만 차이는 없습니다. –

+0

아, 그 코드의 위치였습니다. imageView.image가 nil로 밝혀졌습니다. –

3

참고 : UIGraphicsBeginImageContextWithOptions(size, YES, 0); // 0 means let iOS deal with scale for you

관련 문제