2010-03-24 5 views
-1

Mon code estComment pouvons-nous changer la couleur d'un texte par programmation?

-(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]; 
} 

Comment peut-on changer la couleur du texte par programmation? Les réponses seront grandement appréciés!

Répondre

1

Je suppose que changer la dernière instance de CGContextSetRGBFillColor à la valeur RGB que vous souhaitez. En ce moment c'est blanc. Remplacez la partie 255, 255, 255 par la valeur RVB correspondante (plage de 0,0 à 1,0 par canal de couleur). c'est à dire. Rouge serait 1,0, 0,0, 0,0; Bleu 0,0, 0,0, 1,0, jaune 1,0, 1,0, 0; Noir 0,0, 0,0, 0,0; etc .... Bonne chance

Edit: plage est 0,0-1,0 pas 0-255

+0

Ce n'est pas la portée des arguments à la fonction 'CGContextSetRGBFillColor'. –

+0

Vous avez raison, 0-1.0. Je vais l'éditer. – Adolfo

+0

Merci beaucoup! Maintenant j'ai compris. – isarathg

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

Comment peut-on changer la couleur du texte par programmation?

C'est une façon, même si vous le faites mal. Voir the documentation; les quatre de ces valeurs sont hors de portée, avec trois d'entre eux étant façon hors de portée.

+0

Merci beaucoup! Maintenant j'ai compris. – isarathg

Questions connexes