uiimage의 선택된 영역을 그립니다
문제
이미지에 작은 그림이 많이있는 이미지가 들어있는 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];
}