0

以下代码在图像上绘制一些文本:

UIGraphicsBeginImageContext(image.size);
[image drawAtPoint:CGPointZero];

NSString *stamp = @"Internal Use Only";
[stamp drawAtPoint:CGPointMake(10, 10) withFont:[UIFont systemFontOfSize:32]];

UIImage *stampedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

如果使用不同的字符串再次执行代码,则两个字符串会合并且不清晰。我怎样才能使这个 drawAtPoint() 覆盖以前的字符串?

4

2 回答 2

0

我能够通过渲染 UITextView 来完成这项工作。这些知道如何通过他们的 layer 属性来绘制自己,并且可以显示多条线(额外的好处!):

CGContextRef context = UIGraphicsGetCurrentContext();
NSString *stamp = @"Internal Use Only";
CGRect frame = CGRectMake(0, 0, 120, 80);
textview.frame = frame;
textview.text = stamp;
textview.font = [UIFont systemFontOfSize:32];
[textview.layer renderInContext:context];
于 2012-10-05T02:18:39.430 回答
0

每次要在其上绘制文本时,都必须复制原始图像。换句话说,您必须保留图像的原始版本。

于 2012-09-21T00:53:13.207 回答