涂鸦功能需求分析
在短视频进入编辑界面的时候在视频预览播放层上用户点击涂鸦按钮调出涂鸦面板。
在涂鸦面板为第一次响应的时候,编辑界面面板不响应。
涂鸦过程中可以选择画笔颜色,同时可以调节画笔宽度。
用户可以撤销涂鸦,进行清屏操作。
技术背景
- 涂鸦功能涉及到iOS开发Cocoa框架中绘图操作。
解决方案
一、UIBezierPath 绘制画板方法
UIBerierPath的原理
|
|
实现细节
|
|
需要实现的API
|
|
最核心的API: **drawRect**
方法的重写
|
|
二、还有两种涂鸦实现方法:
1、系统绘图库 NSUndoManager + Quartz2D实现。
2、使用OpenGLES实现。
总结
对于简单一次性绘制涂鸦需求,可以采用第一种方案,方案一API具有高度封装性使用成本比较低,如果不会重复绘制,不会有很大的性能问题产生。
如果追求很流畅的绘制效率,采用第二种方案。方案二绘制效率高,偏底层,绘制速度快,但因为偏于底层,对于重复绘制会比较耗性能,计算频繁会出现延迟断点问题。
方案三更偏底层,很多需求需要用OpenGL自定义开发,成本高,出现问题不容易解决,优点是绘制速度更快,更流畅。