2014-09-22 2 views
0

디자이너는 새로운 네트워크 호출마다 평범한 이미지를 얻습니다. 그러나 디자인은 이미지가 같은 모양에 있어야한다는 것입니다 : 특정 모양으로 이미지를 그리는 방법

enter image description here

내가 어떻게 할 수 있습니다

? 안드로이드에서는 경로를 사용하여 그런 모양을 만든 다음 셰이더를 사용하여 그 모양으로 이미지를 그립니다. iOS에서 그런 것을 찾지 못했습니까?

+1

은 그냥있는 UIImage에 적용되는 마스크를 사용합니다. 다음은 참고 자료입니다. http://stackoverflow.com/questions/2776747/masking-a-imimage – Krivoblotsky

+0

질문 사항 너 어떻게 한거야? 모양을 그리는 방법? 그런 모양을 그리려면 UIBezierPath를 사용하는 것만 큼 문제가됩니다. –

+0

아니요. 도형을 그려야하고 UIImage를 그려야하는 도형을 그려야합니다. 그래서 UIImage는 그 모양을 가지고 있습니다. – user1007522

답변

0

Krivoblotsky에게 감사드립니다. 당신은 이미지를 마스크이 코드 조각을 사용할 수 있습니다

- (UIImage*) _maskImage:(UIImage *) image withMask:(UIImage *) mask 
{ 
    CGImageRef imageReference = image.CGImage; 
    CGImageRef maskReference = mask.CGImage; 

    CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskReference), 
      CGImageGetHeight(maskReference), 
      CGImageGetBitsPerComponent(maskReference), 
      CGImageGetBitsPerPixel(maskReference), 
      CGImageGetBytesPerRow(maskReference), 
      CGImageGetDataProvider(maskReference), 
      NULL, 
      YES 
    ); 

    CGImageRef maskedReference = CGImageCreateWithMask(imageReference, imageMask); 
    CGImageRelease(imageMask); 

    UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference]; 
    CGImageRelease(maskedReference); 

    return maskedImage; 
} 

당신은 그 다음 투명성으로 사용되기 때문에 이미지가 검은 색과 검은 색이 아닌 일종의 있는지 확인해야합니다.

이 아주 좋은 튜토리얼 당신에게 마스크 이미지를 보여줍니다

http://jeroendeleeuw.com/post/33638733049/how-to-mask-images-with-core-graphics-in-ios

관련 문제