編輯:關於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網絡應用開發,主要有兩種方式,一種是socket(是對tcp/udp協議的封裝),另外一種就是使用Http協議,Android中主要
今天在維護公司的一個APP的時候,有如下場景。彈出一個AlertDialog的時候,在系統語言是中文的時候,如下所示:彈出一個AlertDialog的時候,在系統語言是E
DOM方式解析XML是先把XML文檔都讀到內存中,然後再用DOM API來訪問樹形結構,並獲取數據的。如果XML文件很大的時候,處理效率就會變的很低。用DOM解析的具體思
2014新年第一天,全面升級安卓開發環境。主要做兩件事:1. 把IDE從eclipse轉到Android Studio(又去掉了一個與IBM Rational的聯系,多少