iOS 将NSAttributedString绘制到图片上,颜色不生效
来源:互联网 发布:linux 结束进程 编辑:程序博客网 时间:2024/05/07 02:40
刚接触ios,看到富文本特效,想做一个demo,根据富文本内容,生成一张图片,并保存到本地,结果字符背景色死活不生效,下面是我的测试代码,请高手们解救我这个菜鸟
-(UIImage*)creatImage3 : (int)width andHeight:(int) height andTextContent:(NSAttributedString*)content
{
UIColor *backgroundColor = [UIColor greenColor]; //字符背景色,就是这个没有生效
UIColor *foregroundColor = [UIColor redColor]; //文字前景色,这个生效了
NSDictionary *attrsDic = @{NSForegroundColorAttributeName: foregroundColor,
NSBackgroundColorAttributeName: backgroundColor
};
NSAttributedString *attributedString_str_atts = [[NSAttributedString alloc] initWithString:@"http://www.baidu.com" attributes:attrsDic];
UIGraphicsBeginImageContextWithOptions( CGSizeMake(width, height), NO, 1);
//获取bitmap上下文
CGContextRef context = UIGraphicsGetCurrentContext();
//旋转一下方向,否则绘制出来的图片是上下颠倒的
CGContextConcatCTM(context, CGAffineTransformScale(CGAffineTransformMakeTranslation(0, height), 1.0, -1.0));
//文本绘制区域
CGRect textRect = CGRectMake(1, 1, width - 2, height - 2);
//自定义绘制NSAttributedString
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFAttributedStringRef)attributedString_str_atts);
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddRect(path, NULL, textRect);
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), path, NULL);
CFRelease(path);
CFRelease(framesetter);
CTFrameDraw(frame, context);
CFRelease(frame);
//获取生成的图片
UIImage *image=UIGraphicsGetImageFromCurrentImageContext();
//释放上下文
CGContextRelease(context);
//保存绘制好的图片到文件中
//先将图片转换为二进制数据,然后再将图片写到文件中
UIImagePNGRepresentation(image);
NSData *data=UIImagePNGRepresentation(image);
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);
NSString* thepath = [paths lastObject];
thepath = [thepath stringByAppendingPathComponent:@"abc.png"];
thepath=@"/Users/liumingjie/abc.png";
NSFileManager *fileManager = [NSFileManager defaultManager];
if ( ![fileManager fileExistsAtPath:thepath]) {
[fileManager createFileAtPath:thepath contents:nil attributes:nil];
}
[data writeToFile:thepath atomically:YES];
return image;
}
0 0
- iOS 将NSAttributedString绘制到图片上,颜色不生效
- iOS 将NSAttributedString绘制到图片上,颜色不生效
- iOS-将像素绘制到屏幕上
- PHP创建图片、绘制图片、并将图片输出到页面上
- iOS: CGPathRef上绘制渐变颜色
- iOS将文字添加到图片上的方法
- iOS开发UI篇—Quartz2D使用(把图片绘制到Bitmap上>输出图片)
- NSAttributedString 绘制
- IOS为文字增加颜色----NSAttributedString
- 将一个像素绘制到屏幕上
- 设置状态栏颜色不生效
- ios 将颜色转化为图片
- ios把颜色值绘制成相应的图片
- iOS 界面上绘制不同字体 颜色 大小的字符串
- 将一张JPEG图片通过嵌入式linux的帧缓冲机制绘制到7寸触摸屏上
- iOS绘制颜色渐变
- Listview 设置分割线颜色不生效
- iOS:NSAttributedString
- Android下直接访问物理块设备疑问
- UBUNTU 运维日志
- android 实现视频缓存
- webSocket通信
- 怎么解决java.lang.NoClassDefFoundError错误
- iOS 将NSAttributedString绘制到图片上,颜色不生效
- 本人是用的asp 怎样将字符串转换成json 格式存入字段呀
- OC的Categories(分类)
- 作为一个手机游戏开发者应该具备哪方面的技术
- 有点意义
- js json
- git菜鸟问题求指教
- hbuilder项目,直接调试真机运行可以,打包后安装在手机上就不行了,
- 109. Convert Sorted List to Binary Search Tree**