2011-01-05 74 views
4

我想在類似照片展臺的mac可可應用程序中複製屏幕閃光燈效果。在可可中複製照相亭屏幕閃光燈

白色圖層覆蓋在屏幕上,並且屏幕的亮度會變得非常明亮,然後再次下降。

任何人都可以給我一些關於如何在Cocoa中複製的建議嗎?

感謝

回答

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); 

}