我有一个文本框,我希望将书面文本添加到 UIImage 中。
如何将 NSString 绘制到 UIImage?
我已经搜索过,发现了很多例子,但没有一个有效。Xcode 只是给了我很多错误。
简而言之,我想将 NSString 绘制到 UIimage。UIImage 应该与预定义的 UIImageView 大小相同,并放置在中心。
有任何想法吗?
我有一个文本框,我希望将书面文本添加到 UIImage 中。
如何将 NSString 绘制到 UIImage?
我已经搜索过,发现了很多例子,但没有一个有效。Xcode 只是给了我很多错误。
简而言之,我想将 NSString 绘制到 UIimage。UIImage 应该与预定义的 UIImageView 大小相同,并放置在中心。
有任何想法吗?
我认为解决方案就在这里..我在我的一个应用程序中使用了这种方法,这里 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 成像器供您进一步使用..
例如...
[newimageviewObj setImage:img];
我希望这能帮到您
UIImage 不是 UIView 的子视图,所以你不能给它添加子视图。NSString 也不是 UIView 的子视图。如果你想在屏幕上显示东西,它们应该继承自 UIView。
所以试试这个:
创建一个 UIImageView - 将其图像属性设置为您的 UIImage 实例。
创建一个 UILabel - 将其文本属性设置为您的 NSString。
将 UILabel 添加为 UIImageView 的子视图。
最后将您的 UIImageView 添加到您当前的视图控制器视图中。
Emm,这里有一些想法。我认为一种简单的方法是这样的:
这可能工作正常。
此外,这可能会带来屏幕截图可能不清楚的问题。然后,在 step1 和 step2 之后,我们可以通过 UIGraphics 获得新的图像。(在这里,我们已经知道文本应该在图像上的位置,这应该没问题。)
PS:有些图像可能没有像 CGImage 这样的属性,为此需要 CGImage。所以,改造它。