1. 程式人生 > >Android 相機濾鏡 圖片圖片處理

Android 相機濾鏡 圖片圖片處理

相信大家都用過美圖秀秀、美顏相機app吧,其實是對圖片修改,實現的原理也就是重寫對圖片RGB顏色重新的編寫和計算來達到實現另外的效果。
為了便於大家對濾鏡演算法的學習,以後釋出的影象處理濾鏡系列帖子會在這裡彙總,本人第一次寫合集,寫得不好的地方大家請見諒,手頭上雖然有一些濾鏡的演算法,但是大多不是android版的,教程裡的程式碼大多是我借鑑其他語言的演算法轉換而成的,效率上還存在優化的空間,大家可以自行優化。有些網友說程式碼能看懂,但是裡面的某些數值不知道是怎麼計算出來的,說實話有些數值我不查資料我也不是很清楚,但是當我需要知道的時候我也會慢慢查閱演算法的核心思想,很多引數由此而來。同時也希望大家養成不懂就查的習慣。
廢話就不多說了直接上程式碼:

image1為原來的圖片 image2為修改以後的圖片

private ImageView mImage1;
private ImageView mImage2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
}

private void initView() {
    mImage1 = (ImageView) findViewById(R.id.image1);
    mImage2 = (ImageView) findViewById(R.id.image2);

    //本地Res.mipmap.image轉成Bitmap
    Resources res = MainActivity.this.getResources();
    Bitmap bmp= BitmapFactory.decodeResource(res, R.mipmap.image);


    mImage1.setImageBitmap(bmp);

    mImage2.setImageBitmap(GrayFilter.changeToGray(bmp));
}

這是Activity的程式碼
下面是圖片修改的程式碼:

裡面有些演算法是查閱各種資料蒐集到的,還不算完整大家先這樣用吧

    int width, height;
    width = bitmap.getWidth();
    height = bitmap.getHeight();
    Bitmap grayBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
    Canvas canvas = new Canvas(grayBitmap);
    Paint paint = new Paint();
    paint.setAntiAlias(true); // 設定抗鋸齒
    //顏色增強美白                                                //變鬼
    float[] array =                                             //ColorMatrix matrix = new ColorMatrix(new float[]{
            {1.25f, 0, 0, 0, 0,                                //-1, 0, 0, 0, 255,
            0, 1.25f, 0, 0, 0,                                //0, -1, 0, 0, 255,
            0, 0, 1.25f, 0, 0,                               // 0, 0, -1, 0, 255,
            0, 0, 0, 1.25f, 0};                             //0, 0, 0, 1, 0,
    /**
     *影象為灰色                                              //紫色
     * float[] array ={                                             ColorMatrix matrix = new ColorMatrix(new float[]{
     0.3f, 0.59f, 0.11f, 0, 0,                                                  0, 1f, 0, 0, 0,
     0.3f, 0.59f, 0.11f, 0, 0,                                                  1f, 0, 0, 0, 0,
     0.3f, 0.59f, 0.11f, 0, 0,                                                  0, 0, 1f, 0, 0,
     0, 0, 0, 1, 0 }                                                            0, 0, 0, 1f, 0,});
     */
    /*
     * 黑白圖片                                                             //復古風格
     *  ColorMatrix matrix = new ColorMatrix(new float[]{                 ColorMatrix matrix = new ColorMatrix(new float[]{
     0.213f, 0.715f, 0.072f, 0, 0,                                                  1/2f,1/2f,1/2f,0,0,
     0.213f, 0.715f, 0.072f, 0, 0,                                                  1/3f,1/3f,1/3f,0,0,
     0.213f, 0.715f, 0.072f, 0, 0,                                                  1/4f,1/4f,1/4f,0,0,
     0, 0, 0, 1f, 0,                                                                0,0,0,1f,0,
     });                                                                                });
     */
    ColorMatrix colorMatrix = new ColorMatrix(array);
    //把飽和度設定為0 就可以得到灰色(黑白)的圖片

// ColorMatrix colorMatrix = new ColorMatrix();
// colorMatrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
paint.setColorFilter(filter);
canvas.drawBitmap(bitmap, 0, 0, paint);
return grayBitmap;
}

這個程式碼可能複製出去有點問題,沒有問題最好,我也沒有試,希望大家能夠用到吧。

下載地址

相關推薦

Android 相機 圖片圖片處理

相信大家都用過美圖秀秀、美顏相機app吧,其實是對圖片修改,實現的原理也就是重寫對圖片RGB顏色重新的編寫和計算來達到實現另外的效果。 為了便於大家對濾鏡演算法的學習,以後釋出的影象處理濾鏡系列帖子會在這裡彙總,本人第一次寫合集

ps例項二:使用高斯製作圖片陰影效果?

例項二:使用高斯濾鏡製作圖片陰影效果 1、ctrl+單擊圖層,選中圖片選區; 2、在該圖層下面,新建一圖層; 3、填充灰色:alt+delete(如果快捷鍵不行,就用油漆桶填充也行) 4、ctrl+Del:取消選區; 5、選中灰色圖層,濾鏡-》高斯濾鏡; 6、移動圖層到合適

Android GPUImage效果

先附上一張效果圖:   第一步:新增依賴 compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1' 第二步:程式碼 public class MainActivity extends Ap

Android OpenGLES開發之仿抖音靈魂出竅

前言 前幾篇寫的濾鏡效果比如美顏、大眼、貼紙效果都是在錄製視訊之前,這個靈魂出竅的效果是在錄製視訊之後,可以對視訊新增效果。 思路 可以觀察到靈魂出竅的效果,其實其主影象本沒有什麼變化,只是新增了一張進行縮放的紋理,跟主影象的alpha進行線性融合的。 怎麼去取靈魂呢,靈魂是跟著

Android OpenGLES開發之貼紙效果

前言 上一篇中寫到了如何實現放大眼睛的效果,這一篇實現貼紙效果,就像那個faceu相機,b612相機,還有抖音都會有的這種貼紙效果。 思路 1、貼紙肯定也是需要定位到人臉的 2、找到貼紙需要放置的位置 3、將貼紙紋理和人本身紋理進行融合 實現 人臉定位啥的,我就不說了,不

Android OpenGLES開發之大眼效果

前言 在很多美顏相機啊,抖音啊,都會有一些放大眼睛的效果,今天就來實現如何放大眼睛。 思路 1、首先使用OpenCV定位到人臉 2、根據定位到的人臉去檢測人臉關鍵點,進而獲取到人眼睛的位置。 3、根據眼睛位置,對眼睛進行放大。 實現 定位人臉 人臉的定位追蹤,在之前文

CIFilter簡單處理(模糊效果,舊色調處理

簡單建立CIFilter  沒有專業處理, 僅能達到簡單的模糊效果,效果如圖 (1)原圖 (2)舊色調處理效果 (3)模糊處理 簡單的程式碼結果如下 // //  ViewController.m //  濾鏡 // 本文檢視部落格地址http://blog

Android 實時 高斯模糊(帶原始碼)

最近在做一個這樣一個需求,一個控制元件可以實時預覽攝像頭的內容,並且對此影象進行高斯模糊處理,現在來記錄一下。  基本的實現思路 1,攝像頭實時預覽的資料會回撥給onPreviewFrame(byte[] data, Camera camera) ,通過這個獲取YU

Unity 相機

濾鏡管理程式碼(掛在Camera物件上)using UnityEngine; using System.Collections; [ExecuteInEditMode] public class CameraShader : MonoBehaviour { priv

Android影象框架GPUImage使用(一)

GPUImage用途 一個開源的基於GPU的影象處理庫,提供各種各樣的影象處理濾鏡,並且支援照相機和攝像機的實時濾鏡。基於GPU進行渲染,幾十種常見的濾鏡功能。 需要裝置 Android 2.2

android全功能音樂播放器、基於MVP-Clean + Weex + RxJava2 + Retrofit + Dagger2 + MTRVA的綜合應用、圖片處理等原始碼

Android仿微信朋友圈檢視圖片下拽返回。 Android圖片濾鏡處理,相機濾鏡處理效果原始碼 Android自定義View原始碼:一個水平的進度條 基於MVP-Clean + Weex + RxJava2 + Retrofit + Dagger2 + M

Android進階-- Glide 圖片形狀裁剪 ,

Glide 、 Picasso 、 Fresco 已逐漸成為Android主流的圖片載入工具(個人見解,使用Volley、ImageLoader、xUtils的大佬們請勿噴~),在多數Android程式設計師的印象中,它們只是載入圖片和快取圖片的工具,其實它們還有很多強大的功

[Swift通天遁地]四、網路和執行緒-(10)處理圖片:壓縮、縮放、圓角、CoreImage、快取

本文將演示在第三方類庫中,用來處理圖片的一些強大功能。 首先確保在專案中已經安裝了所需的第三方庫。 點選【Podfile】,檢視安裝配置檔案。 1 platform :ios, ’12.0’ 2 use_frameworks! 3 4 target 'DemoApp' do 5

iOS CoreImage 圖片處理效果

前言 現在很多的APP當中選擇圖片都會帶有圖片處理效果,一些類似於美圖,PS的功能,其實在iOS中系統內部也有這樣一個框架,在Xcode7.0之前的版本需要手動去匯入這個框架,7.0之後系統已經自動幫我們匯入了這個框架。我們想要處理圖片直接就可以在方法裡面去實

HTML5----CSS3圖片(filter)特效

拖動 ner hot war str term min jquer onchange 支持Chrome: 暫不支持瀏覽器:FF,IE... 希望後者努力 效果圖: CSS: <style type="text/css"> @-webkit-key

Android關於圖片處理

拍照 圖片處理 ImageView Android 一、布局中顯示圖片在布局的xml中布局圖片的時候用ImageView,用src去指定圖片所在位置。如下代碼所示,指定的就是工程目錄(/res/drawable)中文件名為unknown.png的圖片。這裏要註意的是Android Studio

圖片變亮效果--

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>圖片變亮效果--濾鏡</title> <style>

android圖片特效處理之光暈效果

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

android圖片特效處理之銳化效果

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android啟動系統相機,開啟相簿選擇圖片

相機 Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //指定拍照後圖片名稱 String photoName = System.currentTimeMillis() + ".jpg"; //設定拍照後圖片存放位置RO