IOS Quartz2D 通过UIColor生成图片
普通生成
示例代码:
//这里实现普通生成图片的方法
- (void)drawRect:(CGRect)rect { CGRect cxRect = CGRectMake(, , , ); UIGraphicsBeginImageContextWithOptions(cxRect.size, NO, ); [[UIColor redColor] setFill]; UIRectFill(cxRect); UIImage * image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(, , , )]; imageView.image = image; [self addSubview:imageView];
}
效果图:

渐变颜色生成
示例代码:
//这里实现渐变颜色生成图片的方法
- (void)drawRect:(CGRect)rect { CGRect cxRect = CGRectMake(, , , );
UIGraphicsBeginImageContextWithOptions(cxRect.size, NO, );
CGContextRef context = UIGraphicsGetCurrentContext();
UIColor * beginColor = [UIColor greenColor];
UIColor * endColor = [UIColor redColor];
drawLinearGradient(context, cxRect, beginColor.CGColor, endColor.CGColor);
CGContextRestoreGState(context); UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(, , , )]; imageView.image = image; [self addSubview:imageView];
} void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor, CGColorRef endColor)
{
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGFloat locations[] = { 0.0, 1.0 }; NSArray *colors = @[(__bridge id) startColor, (__bridge id) endColor]; CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef) colors, locations);
CGPoint startPoint = CGPointMake(rect.size.width/, );
CGPoint endPoint = CGPointMake(rect.size.width/, rect.size.height/1.5); CGContextSaveGState(context);
CGContextAddRect(context, rect);
CGContextClip(context);
CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, );
CGContextSetStrokeColorWithColor(context, [[UIColor clearColor] CGColor]);
}
效果图:

IOS Quartz2D 通过UIColor生成图片的更多相关文章
- iOS - 对UIColor颜色反差
iOS中默认的很多方法可以获得不同种颜色的UIColor对象,但是White和Black等灰度值其实是用灰阶透明度调制 +colorWithWhite:alpha:,这些CGColorRef拥有2个组 ...
- iOS Quartz2D画图
对于刚接触Quartz2D的同学来说,先了解 上下文 的概念,再从最基础的画线来具体体验Quartz2D的画图步骤 介绍Quart2D :是苹果官方的二维(平面)绘图引擎,同时支持iOS和macOS系 ...
- iOS——Quartz2D
0. 复习. 1.基本图形绘制 * 线段(线宽.线段样式) * 矩形(空心.实心.颜色) * 三角形.四边形等形状 1> 说明 - (void)drawRect:(CGRect)rect 什么时 ...
- iOS:quartz2D绘图 (动画)
quartz2D可以用来绘制自己需要的图形,它们绘制出来的是一个静态的图形,那么如何绘制一个动态的图形呢?动态的图形就是动画,所谓动画,其实就是很多张图片在短时间内不停的切换所产生的一种视觉效果.qu ...
- IOS Quartz2D简介
Quartz2D 简介( 后续会有相关应用) 第一部分 绘制直线 代码示例: - (void)drawRect:(CGRect)rect{ //获取图形上下文 CGContextRef cxConte ...
- iOS:扩展UIColor,支持十六进制颜色设置
来自转载:http://my.oschina.net/leejan97/blog/307491 摘要: 可以直接使用十六进制设置控件的颜色,而不必通过除以255.0进行转换 #define UICol ...
- IOS Quartz2D自定义view
@property (nonatomic, weak) UIImageView *imageView; @property (nonatomic, weak) NJImageView *njIv; @ ...
- iOS开发:UIColor转成纯色图片(UIImage)
Objective-c 版本 UIKIT_EXTERN UIImage * __nullable UIColorAsImage(UIColor * __nonnull color, CGSize si ...
- IOS中将十进制色值转换成UIColor
最近因项目需要,在网上找了一些代码,整合了一下,实现的效果就是将10进制的RGB色值转换IOS用的UIColor,方法还有缺陷,有待改进 UIColor *getColorFromString(NSS ...
随机推荐
- 如何查看distirbution agent的执行进度
在transactional replication troubleshooting的过程中,经常会遇到下面的场景: 客户在发布端执行了一个几百万行的更新,结果导致性能下降. 客户很想知道目前dist ...
- LoRaWAN协议(二)--LoRaWAN MAC数据包格式
名词解析 上行:终端的数据发送经过一个或多个网关中转到达网络服务器. 下行:由网络服务器发送给终端设备,每条消息对应的终端设备是唯一确定的,而且只通过一个网关中转. LoRaWAN Classes L ...
- [git]fork+pull提交模式
fork+pull提交模式 在公司项目中,大多都是通过"主题分支"的方式,进行开发与合并代码.但是,这样又一个弊端就是:合并代码后需要删除分支.同时,如果是开源的项目的话,非项目中 ...
- Centos7 禁止firewalld并使用iptables 作默认防火墙
一.停止并禁用firewalld [root@test ~]# systemctl stop firewalld [root@test ~]# systemctl disable firewalld ...
- 分享几个cocos2dx的小游戏
先上几个自己写的,因为最近要用cocos2dx,所以就边学边开发几个小游戏玩玩,有捕鱼,连连看,还有打地鼠!都不算完整的项目,不过拿来学习还是可以的,或者在基础上再二次开发,扩展自己! 1:捕鱼的 先 ...
- 通过LINQ表达式树动态构建查询条件
第一种方法: public static class PredicateExtensions { public static Expression<Func<T, bool>> ...
- Entity FrameWork 延迟加载的本质(一)
1.集合的标准查询运算符方法,是来自于System.Linq.Enumerable里给IEnumerable接口添加的扩展方法 2.EF上下文里的DBSet<T>里的标准查询运算符方法,来 ...
- 从零开始,CentOS6安装ghost博客
买了个Bandwagon的VPS来科学上网的,寻思着空间还大顺便做个博客呗. 然后就安装了AMH面板,再搞了个wordpress博客玩玩. 接触到Ghost博客的时候,心血来潮想装一个. 然后就试着搞 ...
- jQuery实现表格拖动排序
原理就是利用mousedown.mouseover.mouseup事件实现拖动,并用Ajax实现保存结果. JS代码如下: <!--题目调序功能--> <script type=&q ...
- 使用innerHTML获取HTML代码时,HTML标记属性的双引号好多都消失不见了,原来是属性值中包含空格才会保留双引号
最近搞的一个项目中所使用的方式比较奇怪,用Label显示HTML内容,然后不断地使用JS把Label的innerHTML复制到TextBox中. 但是,昨天发现了一个问题,获取元素值的时候,有时候正常 ...