我想在類似照片展臺的mac可可應用程序中複製屏幕閃光燈效果。在可可中複製照相亭屏幕閃光燈
白色圖層覆蓋在屏幕上,並且屏幕的亮度會變得非常明亮,然後再次下降。
任何人都可以給我一些關於如何在Cocoa中複製的建議嗎?
感謝
我想在類似照片展臺的mac可可應用程序中複製屏幕閃光燈效果。在可可中複製照相亭屏幕閃光燈
白色圖層覆蓋在屏幕上,並且屏幕的亮度會變得非常明亮,然後再次下降。
任何人都可以給我一些關於如何在Cocoa中複製的建議嗎?
感謝
你可以看看this教程創建一個全屏窗口。只需將其設爲白色,並使用Core Animation將其淡入淡出即可。例如:[[MyFullScreenWindow animator] setAlphaValue:0.0];
會淡出。
我建議使用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);
}