我正在尝试创建一个应用程序,它将通过editText指定两张图片,比较两个图像上每个像素的颜色,并创建一个新图片(位图)(可以保存到SD卡),其中包含两张原始照片.
我在创建这个新位图时遇到了问题.我怎样才能实现目标?我真的不知道如何做到这一点,我先创建新的位图,然后写入它,或者先得到差异,然后从中绘制一个位图?图片大约是. 300×300像素.
解决方法
这段代码只是我的头脑而未经测试,但它应该让你走在正确的轨道上.
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,b)); } } b1.recycle(); b2.recycle();