EnjoyCamera
之前寫過一系列的 GPUImage、OpenGL ES 相關的文章,但是寫的例子都比較零散,也比較簡單,并沒有提供完整的項目。其實,在寫博客的時候寫了一個簡單的相機應用,該項目以 GPUImage 為基礎,涉及到了多種實時濾鏡和圖片處理,現在可以開源出來供大家學習。本項目使用的圖片來自網絡,因此不要用于商業用途。
Idea
- Idea from: GPUImage
- Idea from My GPUImage Blog
- Idea from My OpenGL Blog
Feature
- 實現相機拍照、濾鏡功能
- 實現圖片的選擇、裁剪和縮放
- 實現圖片的濾鏡
- 實現圖片添加貼紙(貼紙可移動,放大,旋轉,縮放,翻轉)
- 實現了保存制作好的圖片,并分享的功能
- 增加了崩潰日志收集功能
Explanation
- 項目目前使用簡單的MVC架構,但是里面包含了 ReactiveObjC 框架。之前準備用 MVVM 架構來實現的,但是想著項目本著簡單的原則,讓大家更容易學習 GPUImage、OpenGL ES 的相關內容,我在開源代碼的時候去掉了 MVVM 的相關內容(畢竟學習 ReactiveObjC 的難度也不小嘛),但是一些簡單的事件不用學習 ReactiveObjC ,理解起來難度并不大,因此也就沒有去掉。總的來說,引入 ReactiveObjC 只是做簡單的事件處理、實現簡單的 KVO 功能(當然 ReactiveObjC 的功能遠不止于此)。
ScreenShot
1.png
2.png
3.png
4.png
5.png
6.png
7.png
8.png
9.png
10.png
11.png
12.png
13.png
Thanks
Blog
Github
Contact Me
- Email: 11gmqin@gmail.com
License
Copyright 2017 Qinmin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.