我正在使用CGContextSetBlendMode尝试将渐变(存储在gradient
中)与多种形状(黑色和透明度)进行颜色混合。我附上了一张带有结果的图片。很容易看出出了什么问题。不知何故出现了文物。
我尝试做的似乎部分工作,但我不确定我的方法是否正确。我首先绘制形状,然后设置上下文的混合模式,然后绘制渐变。
同样奇怪的是,当我使用kCGBlendModeColorBurn
代替kCGBlendModeColor
时,工件不会出现。我也没有在图层中绘制任何其他东西。
我无法确定混合模式的工作原理。我找不到任何好的文件。
CGRect rectangle = CGRectMake(60,170,200,200);
CGContextAddEllipseInRect(context, rectangle);
CGContextFillPath(context);
CGRect rectangle2 = CGRectMake(40,120,100,100);
CGContextAddEllipseInRect(context, rectangle2);
CGContextFillPath(context);
CGContextSetBlendMode( context, kCGBlendModeColor);
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);