可可:使用NSGradient作为掩模在其下方绘图

可可:使用NSGradient作为掩模在其下方绘图,第1张

概述我试图用 Cocoa绘制一个形状的反射.我已经应用了NSAffineTransform并成功重新绘制了形状,但现在我无法弄清楚如何在其上绘制alpha蒙版.我正在使用NSCompositeDestinationOut *** 作,但它给了我一个不需要的结果: alt text http://img687.imageshack.us/img687/2417/capturedcran20100623094.p 我试图用 Cocoa绘制一个形状的反射.我已经应用了NSAffinetransform并成功重新绘制了形状,但现在我无法弄清楚如何在其上绘制Alpha蒙版.我正在使用NSCompositeDestinationOut *** 作,但它给了我一个不需要的结果: alt text http://img687.imageshack.us/img687/2417/capturedcran20100623094.png

我不确定如何解决这个问题 – 我需要这样做才能使渐变仅作为Alpha蒙版而实际显示.我使用错误的合成模式吗?

谢谢!如果需要,这是渐变代码:

- (voID)fadeOutRect:(NSRect)rect {    [NSGraphicsContext saveGraphicsstate];    [[NSGraphicsContext currentContext] setCompositingOperation:NSCompositeDestinationOut];    NSGradIEnt *gradIEnt = [[NSGradIEnt alloc] initWithcolorsAndLocations:                            [[NScolor blackcolor] colorWithAlphaComponent:0.5],0.0,[[NScolor blackcolor] colorWithAlphaComponent:1.0],0.8,nil];    [gradIEnt drawInRect:NSMakeRect(rect.origin.x,rect.origin.y + rect.size.height - ( PILL_HEIGHT * 2 ),rect.size.wIDth,PILL_HEIGHT) angle:270];    [NSGraphicsContext restoreGraphicsstate];}
解决方法 是的.这是我们用来执行此 *** 作的代码示例.它使用源图像,并且有一些有趣的业务与比例因子,但你应该能够使用基本结构和合成选择来做你需要的. (此代码位于[reflectionImage lockFocus]块内,self是我们正在反映的NSImage.)

// Draw our mask into the imageNSGradIEnt* fade = [[NSGradIEnt alloc] initWithStartingcolor:[NScolor colorWithCalibrateDWhite:1.0 Alpha:0.5]                                                 endingcolor:[NScolor clearcolor]];[fade drawFromPoint:NSMakePoint(0.0,size.height)            topoint:NSMakePoint(0.0,0.0)            options:0];// Composite the original image,upsIDe-downNSAffinetransform* flipper = [NSAffinetransform transform];[flipper scaleXBy:1.0 yBy:-1.0];[flipper concat];[self drawInRect:NSMakeRect(0.0,-1.0*size.height,size.wIDth,size.height)        fromrect:NSMakeRect(0.0,self.size.wIDth,size.height / scaleFactor)       operation:NSCompositeSourceIn fraction:1.0];
总结

以上是内存溢出为你收集整理的可可:使用NSGradient作为掩模在其下方绘图全部内容,希望文章能够帮你解决可可:使用NSGradient作为掩模在其下方绘图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1010037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存