我不确定如何解决这个问题 – 我需要这样做才能使渐变仅作为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作为掩模在其下方绘图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)