Jor*_*anC 4 macos cocoa brightness
我试图在类似于Photo Booth的mac cocoa应用程序中复制屏幕闪光效果.
屏幕上会叠加一个白色层,屏幕亮度会变亮,然后再次下降.
谁能给我一些关于如何在Cocoa中复制它的建议?
谢谢
我建议使用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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
696 次 |
| 最近记录: |