我有一个NSString对象。 我想将它写入现有的UIImage对象。 UIImage对象已经有一些图像与它关联。 我想写字符串到相同的图像。 我如何实现它?将NSString绘制为UIImage
1
A
回答
1
NSString
不能成为UIImage
。但是,听起来你想要做的只是在图像上叠加一些文本,而且这很容易实现。
创建一个
UILabel *label
。使用label.text = myString;
将文本设置为您的字符串。创建一个
UIImageView *imageView
。使用imageView.image = myimage
将视图图像设置为图像。添加
UILabel
为UIImageView
的子视图(作为UIView
一个子类,它需要子视图)与[imageView addSubview:label];
(或滴在imageview的标签,如果你正在使用的IB)。
确保将标签的背景设置为[UIColor clearColor]
或设置alpha = 0.0
以便它是透明的。
2
编辑: 以下是实现编辑UIImage和写入文本的基本步骤。
- 从UIImage获取CGImage。
- 呈现CGImage上下文。
- 渲染要在同一上下文中编写的文本。
- 获取上下文的位图并使CGImage不在此范围内。
- 获取的UIImage从CGImage ....
这将是更容易显示在文本和标签,并显示在图像视图。 答案已经存在。
然后更新到文件或显示在屏幕上....
1
你会画(复合)两者的图像和字符串转换成图形上下文,然后抢造成的UIImage。
绘制图像使用renderInContext
。 要使用文字CGContextShowTextAtPoint
。 为了得到最终的图像
UIImage *compositeImage = UIGraphicsGetImageFromCurrentImageContext();
0
这是我的代码。我有一个35x480视图,并绘制旋转90度的文字。我希望这有帮助。我绘制图像,然后绘制文字,使其显示出来。它看起来像一个窗口的窗口标题。
我绘制图像,然后绘制drawRect上的文本。
@synthesize topView;
@synthesize delegate;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
topView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
topView.backgroundColor = [UIColor clearColor];
topView.opaque = NO;
}
return self;
}
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
UIGraphicsBeginImageContext(img.image.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
// draw titleborder
CGRect titleRect = CGRectMake(0, 0, 35, 480);
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"titleborder" ofType:@"png"];
UIImage *titleImage = [[UIImage alloc] initWithContentsOfFile:filePath];
[titleImage drawInRect:titleRect];
[self bringSubviewToFront:topView];
UIFont *font = [UIFont boldSystemFontOfSize:16.0];
CGRect textRect = CGRectMake(0, rect.size.height/2, 480, 40);
NSLog(@"text rect frame: %@", NSStringFromCGRect(textRect));
[self drawText:[[NSString alloc] initWithFormat:@"My Window Title"] rect:textRect context:context font:font red:1.0 green:1.0 blue:1.0 alpha:1.0] ;
CGContextRestoreGState(context);
}
- (void) drawText: (NSString *)text rect: (CGRect)rect context:(CGContextRef)context font:(UIFont *)font red:(CGFloat)r green: (CGFloat)g blue:(CGFloat)b alpha:(CGFloat)alpha {
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetRGBFillColor(context, r, g, b, alpha); // 6
CGContextSetRGBStrokeColor(context, 1, 1, 1, 1);
CGAffineTransform transform1 = CGAffineTransformMakeRotation(-90.0 * M_PI/180.0);
CGContextConcatCTM(context, transform1);
CGSize sizeOfString = [text sizeWithFont:font];
CGContextTranslateCTM(context, (sizeOfString.width/2) - 420,-232);
[text drawInRect:rect withFont:font lineBreakMode:UILineBreakModeClip alignment:UITextAlignmentLeft];
}
相关问题
- 1. 将NSData [UIImage]转换为NSString
- 2. 将UIImage绘制到CurrentContext中
- 3. 将NSString绘制到CALayer中
- 4. 将UIImage转换为NSString(反之亦然)
- 5. NSString到UIImage
- 6. 如何将UIImage“绘制”到视图中?
- 7. 将NSString绘制到PDF页面
- 8. 在UIScrollView中绘制UIImage
- 9. 如何绘制动画UIImage?
- 10. 用Core Graphics绘制UIImage?
- 11. 将UIImage绘制为一个不带屏外渲染的圆形
- 12. 用UIImageView绘制NSString绘图字符串
- 13. 如何使用NSString绘图功能从文本创建UIImage
- 14. 从NSString创建一个UIImage
- 15. 不能在UIView里面绘制UIImage
- 16. 绘制使用的UIImage或代码
- 17. 绘制的UIImage(或JPEG)到EAGLView
- 18. 点之间绘制线在的UIImage
- 19. 绘制圆圈并存储在UIImage中
- 20. 在UIImage上绘制边框和阴影
- 21. 在UIImage上绘制线NOT UIImageView - Xamarin iOS
- 22. 绘制UIImage的选定区域
- 23. 使用Core Data中的CGRect绘制UIImage
- 24. 在UIView上快速绘制UIImage图像
- 25. MoniTouch在UIImage上绘制线条
- 26. iPhone SDK - 如何绘制UIImage到另一个UIImage?
- 27. 将NSString转换为十六进制
- 28. 将NSString强制转换为UIButton类型
- 29. 如何在iPhone上垂直绘制NSString?
- 30. 围绕NSString的一部分绘制框