2015-11-03 69 views
0

我試圖在Android的一些照片過濾器,我有代碼Android的照片濾鏡

for(int x = 0; x < width; ++x) { 
     for(int y = 0; y < height; ++y) { 
      // get pixel color 
      pixel = src.getPixel(x, y); 
      A = Color.alpha(pixel); 
      R = Color.red(pixel); 
      G = Color.green(pixel); 
      B = Color.blue(pixel); 
do some work here 
      bmOut.setPixel(x, y, Color.argb(A, R, G, B)); 

這是非常非常慢,這是不可能做任何事情。 有沒有其他方法可以做到這一點?

+0

使用顏色矩陣。而不是一次在嵌套循環中處理像素,他們一次處理整個圖像。你可以做許多效果 - 如灰度轉換,棕褐色調,反轉,色調,亮度調整,... –

+0

我可以用顏色矩陣做所有可能的效果嗎? 你可以給我一些關於顏色矩陣的教程嗎? – encrypt

+0

您可以製作色彩效果。 Google'android colormatrix'。 Google'ColorMatrix'用於查找更多ColorMatrices。 –

回答

0

Android的媒體效果框架允許開發人員輕鬆地將許多令人印象深刻的視覺效果應用於照片和視頻。由於該框架使用GPU執行其所有圖像處理操作,因此它只能接受OpenGL紋理作爲其輸入。請參閱this瞭解如何使用OpenGL ES 2.0將可繪製資源轉換爲紋理,然後使用該框架向其應用各種效果。我想這比你現在的方法更快!