2013-11-25 2 views
0

UIImageView에서로드 된 jpg 이미지가 있고 그레이 스케일 알파 마스크 이미지로 마스크하려고합니다. 그레이 스케일 채널 만 있고 RGB 또는 알파 채널은 없습니다.UIImageView가 이미지 마스크를 무시하는 이유는 무엇입니까?

iv = [UIImage imageNamed:@"image.jpg"]; 
self.foreground = iv; 

CALayer *mask = [CALayer layer]; 
UIImage *maskImg = [UIImage imageNamed:@"mask.jpg"]; 
mask.contents = (id)[maskImg CGImage]; 
mask.frame = iv.bounds; 

iv.layer.mask = mask; 
iv.layer.masksToBounds = YES; 

[self addSubview:iv]; 

이미지가 올바르게로드됩니다. 그러나 마스크는 전혀 효과가 없습니다. 나는 Photoshop에서 그것을 뒤집어 썼다. 또한 모든 종류의 PNG 변형을 포함하여 다양한 다른 파일 형식으로 저장하려고 시도했다. 아무것도 작동하지 않습니다.

왜 그런가?

+1

당신이 투명 PNG를 시도 했습니까? 검은 색 (알파 = 1)에서 투명한 (알파 = 0) 픽셀까지? – Cyrille

답변

-1

를 사용하여 이미지 마스킹이 코드 ...

YourImageview.layer.borderWidth=1.0; 
YourImageview.layer.borderColor = [UIColor lightGrayColor].CGColor; 
YourImageview.layer.backgroundColor=[UIColor whiteColor].CGColor; 
YourImageview.layer.cornerRadius=30.5; 
[YourImageview.layer setMasksToBounds:YES]; 
관련 문제