2014-01-19 3 views
0

저는 xcode를 사용하여 iPhone 용 게임을 만들고 있습니다. 나는 시작 이미지를 가지고 있는데, 거기에서 몇 가지 (네 개의) 투명 영역을 가진 두 번째 이미지를 원합니다. 단지 같은이 하나UIImage에서 투명 영역을 만드는 방법은 무엇입니까?

enter image description here

문제는 내가 그것을 달성하는 방법을 알 수 없다는 것입니다; 원본 이미지를 처리하고 그 영역을 잘라 내야합니까? 또는 내가 원래 이미지에서 보이는 부분 만 넣을 새 이미지를 만들 수 있습니까? 제안이나 스 니펫은 정말 감사하겠습니다.

답변

1

음, 사용자 지정 UIView 하위 클래스를 만들고 drawRect 메서드를 사용하여 부분을 그립니다. 예를 FO :

- (무효)의 drawRect :(

CGRect)rect 
{ 
    [super drawRect:rect]; 

    CGContextRef ctx = UIGraphicsGetCurrentContext(); // get drawing context 

    CGContextSaveGState(ctx); //remember current state 
    CGContextClipToRect(ctx, CGRectMake(0, 0, 100, 100)); //set clipping 
    CGContextDrawImage(ctx, CGRectMake(0, 0, img.size.width, img.size.height), img.CGImage); 
    CGContextRestoreGState(ctx); //restore state, so the previous clipping will be canceled 

    CGContextSaveGState(ctx); 
    CGContextClipToRect(ctx, CGRectMake(100, 100, 100, 100)); 
    CGContextDrawImage(ctx, CGRectMake(0, 0, img.size.width, img.size.height), img.CGImage); 
    CGContextRestoreGState(ctx); 
} 

이 두 개의 작은의 구형을 그릴 것이 코드 IMG가있는 UIImage이다에서

그러나이 할 수있는 가장 쉬운 방법입니다.. CGContextClipToRects와 CGContextClip 함수를 검사하여 더 효율적이고 유연하게 만들 수 있습니다.

+0

오, 많은 감사합니다. 두 개의 작은 rects 거꾸로 나타나는 ...) 어쨌든 아주 좋은 s tart point;) – xabaras78

+0

그리고 CGContextDrawImage를 [img drawAtPoint : CGPointMake (0,0)]로 바꾸어서 해결했습니다. :) – xabaras78

관련 문제