我的代码是
-(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];
}
我们如何以编程方式更改文本的颜色? 答案将不胜感激!
答案 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;所有这四个值都超出范围,其中三个方式超出范围。