2011-01-05 3 views
4

Photo Booth와 비슷한 Mac 코코아 응용 프로그램에서 화면 플래시 효과를 복제하려고합니다.코코아에서 사진 부스 화면 플래시 복제

흰색 레이어가 화면에 오버레이되어 화면의 밝기가 실제로 밝아지고 다시 어두워집니다.

아무에게도 이것이 코코아에서 어떻게 복제 될 수 있는지 조언 해 줄 수 있습니까?

감사

답변

1

당신은 전체 화면 창을 만드는 this 자습서를 한 번 봐 걸릴 수 있습니다. 그냥 하얀색으로 만들고 Core Animation을 사용하면 안팎으로 색이 바래집니다. 예 : [[MyFullScreenWindow animator] setAlphaValue:0.0];은 페이드 아웃합니다.

6

Quartz Display Services의 CGDisplayFade API를 사용하는 것이 좋습니다. 사용하기가 매우 쉽고 가짜 전체 화면 창이나보기가 필요하지 않습니다.

는 여기를 참조하십시오 : Quartz Display Services Reference

간단한 구현과 같을 것이다 :

-(void)flashScreenUsingFlashColor:(NSColor *)flashColor 
        inDuration:(NSTimeInterval)inDuration 
        outDuration:(NSTimeInterval)outDuration{ 

CGDisplayFadeReservationToken fadeToken; 
NSColor *colorToUse = [flashColor colorUsingColorSpaceName: NSCalibratedRGBColorSpace]; 

CGError error = CGAcquireDisplayFadeReservation (inDuration + outDuration, &fadeToken); 
if (error != kCGErrorSuccess){ 
    NSLog(@"Error aquiring fade reservation. Will do nothing."); 
    return; 
} 

CGDisplayFade (fadeToken, inDuration, kCGDisplayBlendNormal, kCGDisplayBlendSolidColor, colorToUse.redComponent, colorToUse.greenComponent, colorToUse.blueComponent, true); 
CGDisplayFade (fadeToken, outDuration, kCGDisplayBlendSolidColor, kCGDisplayBlendNormal,colorToUse.redComponent, colorToUse.greenComponent, colorToUse.blueComponent, false); 

} 
관련 문제