绘制文本并添加到UIImage iOS 5/6

绘制文本并添加到UIImage iOS 5/6,ios,uiimage,core-graphics,draw,Ios,Uiimage,Core Graphics,Draw,我有一个文本框,我想在其中写入文本添加到UIImage 如何将NSString绘制到UIImage 我搜索了很多例子,但没有一个是有效的。Xcode给了我很多错误 简单地说,我想为UIimage绘制一个NSString。UIImage的大小应与预定义的UIImageView相同,并放置在中间 有什么想法吗?UIImage不是UIView的子视图,因此不能向其中添加子视图。此外,NSString不是UIView的子视图。如果您想在屏幕上显示内容,它们应该继承UIView 所以试试这个: 创建UII

我有一个文本框,我想在其中写入文本添加到UIImage

如何将NSString绘制到UIImage

我搜索了很多例子,但没有一个是有效的。Xcode给了我很多错误

简单地说,我想为UIimage绘制一个NSString。UIImage的大小应与预定义的UIImageView相同,并放置在中间


有什么想法吗?

UIImage不是UIView的子视图,因此不能向其中添加子视图。此外,NSString不是UIView的子视图。如果您想在屏幕上显示内容,它们应该继承UIView

所以试试这个:

创建UIImageView-将其图像属性设置为UIImage实例

创建UILabel-将其文本属性设置为NSString

将UILabel添加为UIImageView的子视图


最后,将UIImageView添加到当前的view Controller视图。

我认为解决方案就在这里。我在我的一个应用程序中使用了此方法 这里lbltext是我标签的对象。此方法使用给定的文本创建新图像并使用文本返回新图像的对象

-(UIImage *) drawText:(NSString*) text inImage:(UIImage*)image atPoint:(CGPoint)point 
{
    UIFont *font = lblText.font;
    UIGraphicsBeginImageContext(iv.frame.size);
    [image drawInRect:CGRectMake(0,0,iv.frame.size.width,iv.frame.size.height)];
    CGRect rect = CGRectMake(point.x,point.y,lblText.frame.size.width, lblText.frame.size.height);
    [lblText.textColor set];
    [text drawInRect:CGRectIntegral(rect) withFont:font]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}
在你下面的评论中,你已经通过了iv.center作为一个要点。。像这样尝试一下

CGPoint point;
point.x=30; // dynamicaly just for example lblText.frame.origin.x;
point.y=40; //lblText.frame.origin.y;
你必须像这样调用上面的方法

UIImage *img = [self drawText:@"Test String" inImage:originalImage atPoint:point];
这里,img是UIImage的另一个应用程序,用于存储带有文本的新图像…调用此方法后,请使用img imager供您进一步使用

例如

[newimageviewObj setImage:img];

我希望这会对你有所帮助

嗯,这里有一些想法。 我认为一个简单的方法是这样的:

  • 将aUIImageView放在aView上
  • 在aView上添加aUITextView
  • 从aView获取屏幕截图 这可能行得通

    此外,这可能会带来屏幕截图不清晰的问题。 然后,在步骤1和步骤2之后,我们可以通过UIGraphics获得新的图像。 (在这里,我们已经知道文本应该在图像上的位置,这应该是确定的。)


    PS:有些图像可能没有像CGImage这样的属性,而CGImage是需要的。所以,转换它。

    他问起绘图的问题,没有什么能阻止他在创建的UIImage上绘制一些文本,然后将其添加到UIImageView。当然,你是对的,但我仍然会保留答案,因为它提供了一个合理的替代方案。我现在找到了一个工作代码。但它看起来像是一幅放大了的低分辨率图像。我试图添加一个带有文本的子视图,但我不知道如何将该子视图添加到UIImageThank,我一到家就会尝试:)无法使其工作。我猜我做错了什么。我在做:[自绘文本:@“teest”在图像:测试图像在点:iv.center];testImage是一个实例变量UIImage*testImage。iv是我的图像视图,lblText是我视图中的UILabel。@EspenBirk我已经编辑了我的答案,请检查一下……告诉我你得到了什么。@P R J现在它工作正常了!非常感谢PRJ:D我试着像你描述的那样手动设置CGPoint,并想问你如何在UIImageView中居中,但后来我看到你已经写了它。如果删除手动CGPoint,它将位于UIImageView的中心。非常感谢:)