문제

이미지에 작은 그림이 많이있는 이미지가 들어있는 uiimage가 있습니다 (기본적으로 스프라이트가 포함 된 이미지 스트립). uiview의 영역에 단일 스프라이트를 그리고 싶습니다.

나는 uiimage의 일부만이보기에 끌리는 방법을 찾을 수없는 것 같습니다. 이것을하는 방법이 있습니까?

도움이 되었습니까?

해결책

나는 당신이 찾고 있다고 생각합니다 cgimagecreatewithImageInRect (). 당신은 얻을 수 있습니다 CGImage a UIImage 이랑 같은 이름의 속성.

편집 : 2009 년에 없었던 2014 년에 존재하는 또 다른 옵션은 다음과 같습니다. Spritekit. 스프라이트 시트가 필요한 일에 따라 유용 할 수 있습니다.

다른 팁

나는 a UIImage 스프라이트 시트 처리를위한 카테고리. 이것을 확인하십시오. 도움이 될 수 있습니다 http://reecon.wordpress.com/2011/11/19/uiimage-sprite-additions-objective-c/

앞서 언급 했듯이이 카테고리는 기반입니다 CGImageCreateWithImageInRect() 그러나 단일 스프라이트 시트에서 스프라이트를 추출하는 과정을 멀리 더욱 편리한 그리고 더 빠르게.

Git Hub 페이지 링크 :https://github.com/r3econ/uiimage-sprite-additions

코코아 포드를 사용하여 설치할 수도 있습니다.

네, 쿼츠와 함께 할 수 있습니다.

여기에는 uiimage를 가져 와서 그 일부를 가리는 방법을 보여주는 튜토리얼이 있습니다.

http://iosdevelopertips.com/cocoa/how-to-mask-an-image.html

다음은 해당 페이지의 코드입니다 (어떤 이유로 든 내려 간 경우)

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {

    CGImageRef maskRef = maskImage.CGImage; 

    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
        CGImageGetHeight(maskRef),
        CGImageGetBitsPerComponent(maskRef),
        CGImageGetBitsPerPixel(maskRef),
        CGImageGetBytesPerRow(maskRef),
        CGImageGetDataProvider(maskRef), NULL, false);

    CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
    return [UIImage imageWithCGImage:masked];

}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top