2012-06-04 2 views
2

iOS 용 아바타 제조업체 앱을 디자인하고 있으며 사용자가 다양한 스타일의 눈을 선택할 수 있고 각 눈의 홍채가 다른 색상. 여기 그래픽 애셋의 색상을 동적으로 변경하기위한 전략

은 예입니다 :

Eye color changer

무엇 각 조합에 대한 PNG를 생성 할 필요없이이 기능을 구현하는 좋은 전략이 될 것인가? 어떤 아이디어? 나는 기술적 측면에 익숙하지 않지만 내가 생각할 수있는 하나의 아이디어는 각 눈의 홍채를 별도의 이미지로 만든 다음 색상을 변환하는 것이다.

무엇을 권하고 싶습니까?

답변

4

코드에서 이미지 마스킹을 권장합니다.

아이 이미지와 아이리스 컬러의 두 레이어를 설정하고 사용자가 선택 영역을 두드리면 각 색상을 생성 할 수 있습니다.

여기에있는 UIImage에 트릭을 할해야 마스킹 코드의 빠른 비트가

- (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]; 

} 

당신은 코드를 매번 실행해야 할 것 (http://mobiledevelopertips.com/cocoa/how-to-mask-an-image.html에서 촬영)입니다하지만 이미지가 있기 때문에 상당히 작아서는 안됩니다. 성능을 향상시키려는 경우 결과를 캐시하기위한 훌륭한 도우미를 작성할 수 있습니다.

0

나는 그것을 테스트 해 보았습니다. 다음은이 게시물 더 포괄적에, 여기 내 실험 결과입니다

기본 이미지 :

base image


마스크 이미지 :

mask image


결과 이미지 :

result image

을 (투명도를 보여주기 위해 검사기 배경의 상단에)
관련 문제