作者热门文章
- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我有 2 个 UILabel 和 2 个图像,我需要合并成一个 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);
或者你可以查看这个问题Setting A CGContext Transparent Background .
关于iphone - 如何将 UIImage 和 UILabel 合并为一张图片并保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13522366/
我是一名优秀的程序员,十分优秀!