Android ColorMatrix 亮度矩陣 對比矩陣 黑白矩陣

來源:互聯網
上載者:User

標籤:android   矩陣   顏色   

顏色矩陣M是5*4的矩陣,android中顏色矩陣M是以一維數組m=[a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t]的方式進行儲存的。

矩陣的每行分別是:
R[a b c d e]
G[f g h i j]
B[k l m n o]
A[p q r s t]
映像的RGBA值則儲存在一個5*1的顏色分量矩陣C中,要想改變一張圖片的顏色效果,只需要改變映像的顏色分量矩陣即可。

在對ColorMatrixFilter過濾時候,傳入的這個參數ColorMatrix,首先應該postConcat亮度矩陣:

        float lum = (brightness - 50) * 2 * 255 * 0.01f;        matrix.set(new float[]                {1, 0, 0, 0, lum,                 0, 1, 0, 0, lum,                 0, 0, 1, 0, lum,                 0, 0, 0, 1, 0});

再postConcat對比矩陣:

        //scale為1時為普通模式,[0 , 1]為減少對比,[1 , 1 + factor]為增加對比        float scale = 1;        if (contrast < 50)        {            scale = contrast / 50f;        }        else if (contrast > 50)        {            scale = (contrast - 50) / 50f * 2.5f + 1;        }        float lum = 256 * brightness / 100 * (1f - scale);        cm.set(new float[]                {                 scale, 0, 0, 0, lum,                    0, scale, 0, 0, lum    ,                 0, 0, scale, 0, lum    ,                 0, 0, 0, 1, 0                });

最後再乘一些效果矩陣,比如黑白矩陣:

        float a = 0.3086f * 256;        float b = 0.6094f * 256;        float c = 0.0820f * 256;        float lum = -256 * threshold;        ColorMatrix matrix = new ColorMatrix();        matrix.set(new float[]                {a, b, c, 0, lum,                 a, b, c, 0, lum,                 a, b, c, 0, lum,                 0, 0, 0, 1, 0});

圖片效果:沖蝕 和 填充方式:浮水印是不同的效果。
浮水印是指將一個圖印在一個圖上。浮水印效果裡面可以添加沖蝕,這種通常被用來做背景圖片。如果浮水印未選擇沖蝕,那麼浮水印上去的應該是原圖。
沖蝕效果是通過調整圖片的 對比和 亮度來實現的。

Android ColorMatrix 亮度矩陣 對比矩陣 黑白矩陣

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.