我们如何以编程方式更改文本的颜色?

时间:2010-03-24 03:58:19

标签: iphone objective-c core-graphics

我的代码是

-(UIImage *)addText:(UIImage *)img text:(NSString *)text1
{
    int w = img.size.width;
    int h = img.size.height; 
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);

    CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);
    CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1);

    char* text = (char *)[text1 cStringUsingEncoding:NSASCIIStringEncoding];
    CGContextSelectFont(context, "Arial", 18, kCGEncodingMacRoman);
    CGContextSetTextDrawingMode(context, kCGTextFill);

    CGContextSetRGBFillColor(context, 255, 255, 255, 2);

    CGContextShowTextAtPoint(context, 10, 170, text, strlen(text));

    CGImageRef imageMasked = CGBitmapContextCreateImage(context);
    CGContextRelease(context);
    CGColorSpaceRelease(colorSpace);

    return [UIImage imageWithCGImage:imageMasked];
}

我们如何以编程方式更改文本的颜色? 答案将不胜感激!

2 个答案:

答案 0 :(得分:1)

我的猜测只是将CGContextSetRGBFillColor的最后一个实例更改为您想要的RGB值。现在它是白色的。将255,255,255部分更改为您想要的相应RGB值(每个颜色通道0.0 - 1.0范围)。即。红色为1.0,0.0,0.0;蓝色0.0,0.0,1.0,黄色1.0,1.0,0;黑色0.0,0.0,0.0;等等....祝你好运

编辑:范围是0.0-1.0而不是0-255

答案 1 :(得分:1)

CGContextSetRGBFillColor(context, 255, 255, 255, 2);

我们如何以编程方式更改文本的颜色?

这是一种方式,虽然你做错了。见the documentation;所有这四个值都超出范围,其中三个方式超出范围。