将RGB值传递给CGContextSetRGBStrokeColor无法正常工作

时间:2012-02-06 14:12:27

标签: iphone ios ipad

对于Orange我传递rgb值255-140-0

CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(),red,green,blue,1.0);对我来说它画黄色!不是橙色。

我尝试将一些低于255的随机值测试到CGContextSetRGBStokeColor,它为我绘制了白色。我不知道为什么会这样!

@ALL可以在这个问题上给我任何建议

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{


    UITouch *touch = [touches anyObject];   
    CGPoint currentPoint = [touch locationInView:drawImage];
    currentPoint.y -= 20;
    UIGraphicsBeginImageContext(drawImage.frame.size);
    [drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), red, green, blue, 1.0);

    CGContextBeginPath(UIGraphicsGetCurrentContext());
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}

1 个答案:

答案 0 :(得分:2)

查看documentation,它指出为红绿和蓝传递的值是浮点数

The graphics context for which to set the current stroke color.
red
The red intensity value for the color to set. The DeviceRGB color space permits the specification of a value ranging from 0.0 (zero intensity) to 1.0 (full intensity).
green
The green intensity value for the color to set. The DeviceRGB color space permits the specification of a value ranging from 0.0 (zero intensity) to 1.0 (full intensity).
blue
The blue intensity value for the color to set. The DeviceRGB color space permits the specification of a value ranging from 0.0 (zero intensity) to 1.0 (full intensity).
alpha
A value that specifies the opacity level. Values can range from 0.0 (transparent) to 1.0 (opaque). Values outside this range are clipped to 0.0 or 1.0.

因此值必须介于0.0和1.0之间。您输入的数字过多。将来请先查看文档。