EnjoyCamera
之前寫過一系列的 GPUImage、OpenGL ES 相關(guān)的文章,但是寫的例子都比較零散,也比較簡(jiǎn)單,并沒有提供完整的項(xiàng)目。其實(shí),在寫博客的時(shí)候?qū)懥艘粋€(gè)簡(jiǎn)單的相機(jī)應(yīng)用,該項(xiàng)目以 GPUImage 為基礎(chǔ),涉及到了多種實(shí)時(shí)濾鏡和圖片處理,現(xiàn)在可以開源出來供大家學(xué)習(xí)。本項(xiàng)目使用的圖片來自網(wǎng)絡(luò),因此不要用于商業(yè)用途。
Idea
- Idea from: GPUImage
- Idea from My GPUImage Blog
- Idea from My OpenGL Blog
Feature
- 實(shí)現(xiàn)相機(jī)拍照、濾鏡功能
- 實(shí)現(xiàn)圖片的選擇、裁剪和縮放
- 實(shí)現(xiàn)圖片的濾鏡
- 實(shí)現(xiàn)圖片添加貼紙(貼紙可移動(dòng),放大,旋轉(zhuǎn),縮放,翻轉(zhuǎn))
- 實(shí)現(xiàn)了保存制作好的圖片,并分享的功能
- 增加了崩潰日志收集功能
Explanation
- 項(xiàng)目目前使用簡(jiǎn)單的MVC架構(gòu),但是里面包含了 ReactiveObjC 框架。之前準(zhǔn)備用 MVVM 架構(gòu)來實(shí)現(xiàn)的,但是想著項(xiàng)目本著簡(jiǎn)單的原則,讓大家更容易學(xué)習(xí) GPUImage、OpenGL ES 的相關(guān)內(nèi)容,我在開源代碼的時(shí)候去掉了 MVVM 的相關(guān)內(nèi)容(畢竟學(xué)習(xí) ReactiveObjC 的難度也不小嘛),但是一些簡(jiǎn)單的事件不用學(xué)習(xí) ReactiveObjC ,理解起來難度并不大,因此也就沒有去掉。總的來說,引入 ReactiveObjC 只是做簡(jiǎn)單的事件處理、實(shí)現(xiàn)簡(jiǎn)單的 KVO 功能(當(dāng)然 ReactiveObjC 的功能遠(yuǎn)不止于此)。
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.