2014-11-20 2 views
0

Для приложения мне нужно отобразить фотографию на экране, а над ней показать каждый кадр фотографии, которую я сейчас просматриваю через камеру. Я знаю, что мне нужно использовать Alpha blending для отображения части каждой фотографии для каждого пикселя, например: на определенном пикселе я покажу 30% одной картинки и 70% другой. Могу ли я получить объяснение, как это можно сделать.Как использовать альфа-смешение для Android для смешивания 2 фотографии

ответ

0

Чтобы ответить на мой собственный вопрос, это можно сделать, обратившись к каждому пикселю на обоих растровых изображениях. После этого мне нужно было дать каждому растровому изображению предварительный бит финального растрового изображения, после чего я отобразил изменения в новом растровом изображении.

 public void blend(View v){ 
    operation= Bitmap.createBitmap(bmp.getWidth(), 
    bmp.getHeight(),bmp.getConfig()); 

    for(int i=0; i<bmp.getWidth(); i++){ 
      for(int j=0; j<bmp.getHeight(); j++){ 
       int p = bmp.getPixel(i, j); 
       int p2 = bmp2.getPixel(i, j); 


       int r = Color.red(p); 
       int g = Color.green(p); 
       int b = Color.blue(p); 

       int r2 = Color.red(p2); 
       int g2 = Color.green(p2); 
       int b2 = Color.blue(p2); 

       r=(r+r2)/2; 
       g=(g+g2)/2; 
       b=(b+b2)/2; 

       operation.setPixel(i, j, Color.argb(Color.alpha(p), r, g, b)); 
      } 
    } 
    img.setImageBitmap(operation); 
}