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

我有一个文本框,我想要的文字被添加到UIImage。

我怎样才能绘制NSString到UIImage?

我搜查了一下,发现了很多例子,但其中没有一个是可行的。 Xcode只是给了我很多错误。

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

有任何想法吗?

我认为解决scheme是在这里..我已经在我的应用程序在这里使用这种方法lbltext是我的标签的对象。 此方法用给定的文本创build新图像,并用文本返回新图像的对象。

-(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作为一个点..尝试像这样manualy

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

我希望这能帮到您

UIImage不是UIView的子视图,所以你不能添加一个子视图。 另外NSString不是UIView的子视图。 如果你想在屏幕上显示的东西,他们应该从UIViewinheritance。

所以试试这个:

创build一个UIImageView – 将其图像属性设置为您的UIImage实例。

创build一个UILabel – 将其文本属性设置为你的NSString。

添加UILabel作为你的UIImageView的子视图。

最后将你的UIImageView添加到你当前的视图控制器视图。

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

  1. 把一个UIImageView放在一个视图上;
  2. 在一个视图上添加一个UITextView;
  3. 从一个视图获取ScreenShot;

这可能正常工作。

此外,这可能会带来一个问题,即截图可能不清楚。 然后,在step1和step2之后,我们可以通过UIGraphics获得新的图像。 (在这里,我们已经知道文字应该在图像上的位置,这应该是确定的。)

PS:有些图像可能没有像CGImage这样的一些属性,CGImage是需要的。 所以,改变它。