我正在尝试创建一个应用程序,它将通过editText指定两张图片,比较两个图像上每个像素的颜色,并创建一个新图片(位图)(可以保存到SD卡),其中包含两张原始照片.
我在创建这个新位图时遇到了问题.我怎样才能实现目标?我真的不知道如何做到这一点,我先创建新的位图然后写入它,还是先得到差异,然后从中绘制一个位图?图片大约是.300x300像素.
Ren*_*ard 18
这段代码只是我的头脑而未经测试,但它应该让你走上正确的轨道.
final int w1 = b1.getWidth();
final int w2 = b2.getWidth();
final int h1 = b1.getHeight();
final int h2 = b2.getHeight();
final int w = Math.max(w1, w2);
final int h = Math.max(h2, h2);
Bitmap compare = Bitmap.createBitmap(w, h, Config.ARGB_8888);
int color1, color2, a, r, g, b;
for (int x = 0; x < w; x++) {
for (int y = 0; y < h; y++) {
if (x < w1 && y < h1) {
color1 = b1.getPixel(x, y);
} else {
color1 = Color.BLACK;
}
if (x < w2 && y < h2) {
color2 = b2.getPixel(x, y);
} else {
color2 = Color.BLACK;
}
a = Math.abs(Color.alpha(color1) - Color.alpha(color2));
r = Math.abs(Color.red(color1) - Color.red(color2));
g = Math.abs(Color.green(color1) - Color.green(color2));
b = Math.abs(Color.blue(color1) - Color.blue(color1));
compare.setPixel(x, y, Color.argb(a, r, g, b));
}
}
b1.recycle();
b2.recycle();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35360 次 |
| 最近记录: |