问题描述
- 能不能结合UIImage和UILabel保存在一个图片中
-
我有两个UILabel,和两个图片,我需要合并到一个UIImage中。我知道可以通过屏幕截图实现,但是主图片是圆形的,如果把它变成矩形的,还会显示出直角边。
//CGSize newImageSize = CGSizeMake(cropImage.frame.size.width, cropImage.frame.size.height); CGSize newImageSize = CGSizeMake(480, 320); NSLog(@"CGSize %@",NSStringFromCGSize(newImageSize)); UIGraphicsBeginImageContextWithOptions(newImageSize, NO, 0.0); //retina res [self.viewForImg.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); NSData *imgData = UIImageJPEGRepresentation(image, 0.9); //UIImagePNGRepresentation ( image ); // get JPEG representation UIImage * imagePNG = [UIImage imageWithData:imgData]; // wrap UIImage around PNG representation UIGraphicsEndImageContext(); return imagePNG;
这个可以合并图片,但是不知道怎么添加到UILabel。
解决方案
使用[myLabel.layer renderInContext:UIGraphicsGetCurrentContext()];
在当前文本中绘画.
例子:
UIGraphicsBeginImageContextWithOptions(newImageSize, NO, 0.0); //retina res
[self.viewForImg.layer renderInContext:UIGraphicsGetCurrentContext()];
[myLabel.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
如果在指定框架中画:
[myLabel drawTextInRect:CGRectMake(0.0f, 0.0f, 100.0f, 50.0f)];
如果设置背景颜色:
CGRect drawRect = CGRectMake(rect.origin.x, rect.origin.y,rect.size.width, rect.size.height);
CGContextSetRGBFillColor(context, 100.0f/255.0f, 100.0f/255.0f, 100.0f/255.0f, 1.0f);
CGContextFillRect(context, drawRect);
时间: 2024-10-27 18:59:19