【发布时间】:2014-11-20 10:31:20
【问题描述】:
对于一个应用程序,我需要在屏幕上显示一张照片,并在它上面显示我现在通过相机拍摄的照片的每一帧。我知道我需要使用 Alpha 混合来显示每个像素的每张照片的一部分,例如:在某个像素上,我将显示一张照片的 30% 和另一张照片的 70%。我能否解释一下如何做到这一点。
【问题讨论】:
标签: android camera alpha alphablending
对于一个应用程序,我需要在屏幕上显示一张照片,并在它上面显示我现在通过相机拍摄的照片的每一帧。我知道我需要使用 Alpha 混合来显示每个像素的每张照片的一部分,例如:在某个像素上,我将显示一张照片的 30% 和另一张照片的 70%。我能否解释一下如何做到这一点。
【问题讨论】:
标签: android camera alpha alphablending
要回答我自己的问题,可以通过访问两个位图上的每个像素来完成。之后,我需要为每个 Bitmap 赋予最终 Bitmap 的百分比,然后在新 Bitmap 上显示更改。
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);
}
【讨论】: