如何在图像上绘制文字

时间:2010-12-08 05:24:43

标签: iphone iphone-sdk-3.0

我有一张图片。在那个图像中,我需要绘制文字。

请提供任何链接或示例代码以进行试用。

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

只需合成一个包含图像顶部文字的额外视图。如果您使用带有[UIColor clearColor]的UILabel作为背景颜色并将opaque设置为false,您将只看到图像顶部的文字,并且图像都不会被遮挡。

如果您希望从包含文本的透明视图的视图中的图像中获取图像,请参阅以下答案:

How to obtain a CGImageRef from the content of an UIView?

这样的事情:

    UIView* baseView = [[UIView alloc] initWithFrame:frameSize];

    UIImage* imageToCaption = [UIImage imageNamed:@"myImage.jpg"];
    UIImageView* imageToCaptionView = [[UIImageView alloc] initWithImage:imageToCaption];
    imageToCaptionView.frame = frameSize;
    [baseView addSubview:imageToCaptionView];
    [imageToCaptionView release];


    // do stuff with fonts to calculate the size of the label, center it in your image etc. etc.
    CGRect labelFrame = ...

    UILabel* myLabel = [[UILabel alloc] initWithFrame:labelFrame];
    myLabel.backgroundColor = [UIColor clearColor];
    myLabel.opaque = NO;

    // set the color, font, text etc.

    [baseView addSubView:myLabel];
    [myLabel release];

没有编译或完成,但你明白了。如果您想将结果作为图像获得,请使用do [baseView.layer renderInContext:context];