绘制文本并添加到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添加到你当前的视图控制器视图。
恩,这是一些想法。 我认为一个简单的方法是这样的:
- 把一个UIImageView放在一个视图上;
- 在一个视图上添加一个UITextView;
- 从一个视图获取ScreenShot;
这可能正常工作。
此外,这可能会带来一个问题,即截图可能不清楚。 然后,在step1和step2之后,我们可以通过UIGraphics获得新的图像。 (在这里,我们已经知道文字应该在图像上的位置,这应该是确定的。)
PS:有些图像可能没有像CGImage这样的一些属性,CGImage是需要的。 所以,改变它。