2015-11-03 75 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将可绘制资源转换为纹理,然后使用该框架向其应用各种效果。我想这比你现在的方法更快!