原创 Android+JNI+OpenGL開發自己的美圖秀秀

代碼地址 網上對於Android相機的開發博文較少,碰巧閒着無聊,遂完成此工程,僅供學習交流,可根據地址中的示例完成類似於美圖秀秀的APP,包含40+種濾鏡與實時美顏與後處理美顏功能。若對您有幫助,點開地址並且點擊右上角的Star。

原创 Android平臺Camera實時濾鏡實現方法探討(二)--Android-GPUImage探討

本章介紹android-gpuimage實現方式,即通過在C++層實現YUV-RGB轉換,通過OpenGL繪製,通過片段着色器運行Shader腳本實現圖像處理,雖然將濾鏡的一些處理交給GPU來執行,極大的減少了速度,但YUV-RGB過程卻

原创 [Cocos2d塔防遊戲開發]Cocos2dx-3.X完成塔防遊戲《王國保衛戰》--防禦塔(六)之兵營塔

該章節主要介紹兵營塔 兵營塔可以產生三個士兵,可以設置士兵集結點,當週圍有敵人通過時,士兵會攔下敵人,並與敵人進行搏鬥。每隔N秒,會回覆士兵血量,可以升級,有更多的兵種。 去其他防禦塔相比,兵營塔在建造完畢,即上一章節中的buildin

原创 [Android開發]LinearLayout與RelativeLayout異同深入探討

Android初級工程師或者校招的面試過程中,很容易被問到LinearLayout與RelativeLayout區別,這是一個基礎問題,由此可以引出例如ViewGroup和View繪製流程等問題,可以看出應聘者的掌握程度。 一般可以這麼回

原创 Android平臺Camera實時濾鏡實現方法探討(十一)--實時美顏濾鏡

上一章完成了對圖片的磨皮處理,經過簡單算法流程優化,可以達到很快的速度,但是不能用於實時美顏。經實驗,若採用只處理Y信號的方案,半徑極限大約是5-10,超過10則明顯感受到卡頓,但對於1920X1080的預覽分辨率來說,取10爲半徑很難得

原创 [Android開發]簡單版仿淘口令複製彈出框功能

使用Android系統的粘貼板管理服務及ClipboardManager通過addPrimaryClipChangedListener添加Listener來監聽粘貼板的狀態,很很簡單的一個小功能~ 1.首先創建一個Service在後臺運

原创 [Android開發]仿天天P圖帶氣泡顯示百分比進度的自定義SeekBar

仿天天P圖圖像美化修改工具,素材來自於天天P圖,效果圖 效果就是點擊之後會有氣泡顯示進度,優點是氣泡不佔用控件的高度 其他效果可參看https://github.com/AnderWeb/discreteSeekBar 實現方法: 添加

原创 Android平臺Camera實時濾鏡實現方法探討(六)--創建幀緩存對象(FBO)加速實時濾鏡處理

上一章探討了如何採用SurfaceTexture+GLSurfaceView顯示YUV數據,減少了片段着色器的工作量和代碼量,但是採用GLSL採用的外部紋理真正的內容是在物理內存中,GPU只負責維護元數據,這樣就增加了GPU取數據的時間,

原创 [Cocos2d塔防遊戲開發]Cocos2dx-3.X完成塔防遊戲《王國保衛戰》--其他

最後一章,講一下其他零碎的地方。 防禦塔方面,還有炮塔的兩個高級塔,例如地震塔,機器人塔。地震塔就是周圍敵人全部減少血量,機器人塔就是一個士兵類,炮塔升級成士兵類,實現方式和士兵類似。 法師塔方面,死亡先知塔可以召喚龍捲風,龍捲風是一個

原创 [Cocos2d塔防遊戲開發]Cocos2dx-3.X完成塔防遊戲《王國保衛戰》--防禦塔(七)之士兵

該章節主要介紹兵營塔中的士兵 上一章討論到兵營塔,兵營塔的關鍵在於士兵,士兵的一切動作,包括升級都在士兵類中完成,代碼部分在Soilder文件夾中。 士兵的類型多種多樣,不光兵營塔有士兵,法師塔與炮塔在升級到4級後均可以產生出一種士兵

原创 Android平臺Camera實時濾鏡實現方法探討(一)--JNI操作Bitmap

衆所周知,通過setPreviewHolder可以將預覽數據顯示在一個SurfaceView上,即可實現相機拍照時的預覽功能,通過添加各個控件和接口即可實現簡單相機應用,但如果需要對預覽畫面進行處理,例如類似美圖秀秀等相機APP的實時濾鏡

原创 Android平臺Camera實時濾鏡實現方法探討(五)--GLSurfaceView實現Camera預覽

前面有一篇探討了如何在片段着色器中將YUV數據轉換爲RGB數據並顯示,但採用samplerExternalOES將SurfaceTexture作爲OpenGL外部紋理,需要使用GL_TEXTURE_EXTERNAL_OES作爲紋理模板,通

原创 Android平臺Camera實時濾鏡實現方法探討(三)--通過Shader實現YUV轉換RBG

文章例如該鏈接通過將YUV分成三個紋理,在shader中取出並且經過公式變換,轉換成RGB。我嘗試了下,顯示的是灰色的,可能是這篇文章採用的是planar格式的YUV,與Android平臺的packed格式的YUV不同,因此需要在紋理綁定

原创 [Cocos2d塔防遊戲開發]Cocos2dx-3.X完成塔防遊戲《王國保衛戰》--敵人(二)之BOSS

該章節主要介紹遊戲中的BOSS 我主要製作了兩個BOSS,分別爲第6關的神燈和11關的大猩猩 首先,是BOSS的入場動畫,例如第六關牆壁倒塌的效果。我們注意到BaseMap中有個虛函數virtual void waveEvent(