[Android] 隨時拍影像處理部分總結及源碼分享

來源:互聯網
上載者:User

標籤:andorid   影像處理   源碼分享   添加相框   灰階處理   

        隨著寒假到來,終於有時間總結下Android這個隨手拍的課程作業了,同時分享了我完成的這部分對影像處理的心得吧!你可以結合demo來閱讀這篇文章,希望對大家有所協助.
        如果你絕對下面文字太過囉嗦,可以直接下載demo.如果你要做android影像處理相關的App,可能對你有些啟發.如果文章中有不足之處,請海涵!僅想分享些東西罷了~
        demo:上傳ing

一. 項目結構及介面

        項目工程結構如所示:

         個人還是比較欣賞這個布局的,其中MainActivity.java是主介面,ProcessActivity.java是影像處理介面,而剩餘五個java對應五個不同的影像處理演算法:EffectProcessImage(映像特效)、FrameProcessImage(添加相框)、IncreaseProcessImage(映像增強)、PersonProcessImage(映像互動)和WatchProcessImage(查看圖片).
        同時Layout中有五個xml子布局,採用PopupWindow形式顯示五個不同的處理,同時該demo比較好移植,將檔案依次複製過去並且MainActivity改成子活動,即可調用.
        其中部分介面如下:
     
                    MainActivity主介面                             添加圖片選項                         影像處理子介面(底部五個) 

二. 映像查看功能

        點擊主介面GridView中"+"添加圖片後,可以選擇從相簿添加或照相,載入圖片進行到處理介面後,點擊底部"查看"按鈕它會有選中的效果(表徵圖顏色變藍&背景顏色加深).同時PopupWindow彈出如下介面:


        其中點擊"旋轉"後提交的動態圖如下所示:
    
        參考以前我的部落格:            [Android] 拍照、、儲存並顯示在ImageView控制項中        
            [Android] 使用Matrix矩陣類對映像進行縮放、旋轉、對比、亮度處理
            [Android] 觸屏setOnTouchListener實現圖片縮放、移動、繪製和添加浮水印
        其他效果如下,同時存在幾個問題:
            1.映像繪圖儲存我沒有做
            2.移動和縮放映像,上傳的都是原圖大小
            3.添加浮水印功能感覺簡單就沒實現
  

三. 映像增強功能

        映像增強主要是通過3個進度條SeekBar實現,可以調節映像的飽和度、亮度和色相.當飽和度等於0時就是黑白二值映像,三個滑動條可以相互調節.如所示:



        參考我的以前部落格:
            [Android] 使用Matrix矩陣類對映像進行縮放、旋轉、對比、亮度處理
            [Android] 影像處理整合之處理ColorMatrix和Intend傳遞路徑顯示映像
            [Android] 底部菜單布局+PopupWindows實現快顯功能表功能(初級篇)
        同時需要注意一個問題: 設定滑動條時需要設定其區間,同時在彈出PopupWindow注意其寬度和不同手機的適屏處理.
        該部分演算法處理代碼如下,每部分演算法調用後返回值都是bitmap,然後調用imageShow.setImageBitmap(mbmp);直接顯示.


四. 映像特效功能

        PopupWindow彈出如下介面,主要包括:懷舊、浮雕、光照、素描和銳利化處理.


        其中特效效果和EffectProcessImage.java如下所示:
    
        參考我的部落格:
            [Android] 通過Menu實現圖片懷舊、浮雕、模糊、光照和素描效果
            [Android] 映像各種處理系列文章合集 (草稿 強推)
        同時演算法中存在一些問題,一個就是效率不高,有好友建議C寫演算法來調用,但是該文章僅是課堂作業,提供一種方法供大家參考.同時在映像素描演算法效果不好,銳利化處理應該也不對(可參考部落格),光照效果是從中心向邊沿映射,使用者可自己設定光照直徑和方向.
            

五. 映像相框添加

        最後是映像相框合成,如所示.我採用的是照相後合成圖片:

    
        添加相框功能主要是通過兩張圖片的合成,我也見到過四張圖片分別合成相框的效果.但我更喜歡這種兩張圖片合成的,在assets檔案夾中載入透明圖片.詳見:
        [Android] 給映像添加相框、圓形圓角顯示圖片、映像合成知識

六. 總結及感想

        該處理過程中的底部五個按鈕切換背景和顏色詳見代碼ProcessActivity.java,主要是通切換兩張圖片和背景實現.如果每個介面顯示不同內容,建議使用Fragment滑動實現.參考:
        [Android] 使用Include布局+Fragment滑動切換畫面
        [Android] 通過GridView仿動態添加本地圖片
        隨手拍我還是比較滿意的,其中後台資料庫我們使用的是新浪SAE做的,同時ListView重新整理拍拍也非常不錯!效果如下:

    
        上傳的demo我把發布功能刪除了,它是通過線程和Process進度條來上傳多張圖片的.同時ListView可以重新整理最近發布訊息,點擊圖片可以查看大圖.可以對發布的拍拍進行評論、關注、點贊等操作.
        但是由於整個項目是大家一起完成,包括網路、資料庫(SAE)、ListView(引用開源),所以只能共用我做的那部分.抱歉~如果有時間可以寫些關於Android網路方面的文章,包括如何上傳圖片(URL連結儲存在雲端硬碟中)、擷取資料庫內容等操作.
        PS:最近其實挺煩躁的,一方面這學期確實忙成狗了,寒假也還有個作業.但在火車上我還是挺平靜的——聽著調皮的鋼琴曲,看著窗外流逝的繁華,不知道從什麼時候自己已經喜歡上了這種26小時獨處的感覺.感受頗多啊!另一個挺令我心煩的就是回家後不久就去做了個手指的小手術,今天寫完這篇文章,心情稍微好點!驀然回首,突然發現這輩子我最對不住的人居然是我自己,希望來年對自己有點,尤其是對自己的身體.同時有機會,找份實習吧!但幸運的是,每每分享一些部落格、完成一些項目後都能給我帶來一份快樂.
        希望文章對大家有所協助~
        最後用最近看的《老人與海》結束這篇文章:
        生活總是讓我們遍體鱗傷,但到後來,那些受傷的地方一定會變成我們最強壯的地方.
      (By:Eastmount 2015-2-7 夜11點   http://blog.csdn.net/eastmount/)
        

[Android] 隨時拍影像處理部分總結及源碼分享

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.