2012-08-30 2 views
0

Я хочу создать UIImage из text.Is есть какой-то учебник о чем-то, что могло бы помочь мне. Я читал много блога, но все блоги показывают, что как создать текст на uiimage, но мне нужно, чтобы изображение текст. Если у кого-то есть представление об этом, пожалуйста, помогите мне. Большое вам спасибо.Можем ли мы создать изображение текста

+0

привет это работает ты? – Spynet

ответ

0

Проверьте этот фрагмент кода, он должен работать. Вы можете свободно изменять некоторые параметры внутри функции. Обратите внимание, что вы должны передать UIImage, созданный где-то еще, этому методу.

//Add text to UIImage 
-(UIImage *)addText:(UIImage *)img text:(NSString *)text1{ 
    int w = img.size.width; 
    int h = img.size.height; 
    //lon = h - lon; 
    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];// "05/05/09"; 
    CGContextSelectFont(context, "Arial", 18, kCGEncodingMacRoman); 
    CGContextSetTextDrawingMode(context, kCGTextFill); 
    CGContextSetRGBFillColor(context, 255, 255, 255, 1); 


    //rotate text 
    CGContextSetTextMatrix(context, CGAffineTransformMakeRotation(-M_PI/4)); 

    CGContextShowTextAtPoint(context, 4, 52, text, strlen(text)); 


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

    return [UIImage imageWithCGImage:imageMasked]; 
} 
1

привет вам попробовать это это .... я надеюсь, что это будет работать для вас

-(UIImage *)imageFromText:(NSString *)text withImage:(UIImage*)img{ 
    // set the font type and size 
    UIFont *font = [UIFont systemFontOfSize:100.0]; 
    CGSize size = [text sizeWithFont:font]; 

    // check if UIGraphicsBeginImageContextWithOptions is available (iOS is 4.0+) 
    if (UIGraphicsBeginImageContextWithOptions != NULL) 
     UIGraphicsBeginImageContextWithOptions(size,NO,0.0); 
    else 
     // iOS is < 4.0 
     UIGraphicsBeginImageContext(size); 

    // optional: add a shadow, to avoid clipping the shadow you should make the context size bigger 
    // 
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    CGContextSetShadowWithColor(ctx, CGSizeMake(0.0, 1.0), 5.0, [[UIColor blackColor] CGColor]); 
    CGContextSetBlendMode(ctx,kCGBlendModeNormal); 
// CGContextSetFillColorWithColor(ctx, [UIColor whiteColor].CGColor); 

    CGContextSetFillColorWithColor(ctx, [UIColor colorWithPatternImage:img].CGColor); 


    /*NSLog(@"Rect %@",CGContextGetClipBoundingBox(ctx)); 
    CGImageRef alphaMask = CGBitmapContextCreateImage(ctx); 
    CGContextClipToMask(ctx, CGContextGetClipBoundingBox(ctx), alphaMask);*/ 


    // draw in context, you can use also drawInRect:withFont: 
    [text drawAtPoint:CGPointMake(0.0, 0.0) withFont:font]; 

    // transfer image 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext();  

    return image; 
} 

вызов метода будет ...

[self imageFromText:@"Booooooooom"]; 
+0

Спасибо, что работает. Но это будет пиксельная скорость, когда мы изменим размер этого изображения. У вас есть решение для этого? –

+0

лучше u может изменить размер входного изображения ..... – Spynet

+0

[UIColor colorWithPatternImage: [self resizedImage: [UIImage imageNamed: @ "donald-duck1.jpg"] withSize: преобразование CGSizeMake (320, 480): CGAffineTransformIdentity drawTransposed: NO интерполяцияКачество : 1.0]]; – Spynet

Смежные вопросы