我有一个跟Android相关的问题,我手头有两张图片:
- 从相机获取的图片
- 从其他地方获取的图片
我想实现的是如何将这两张图片合成为一张重叠的图片(就像给图片添加水印一样)。
第二张图片需要先缩放到与第一张图片(相机图片)大小相同,然后如果第二张图片中的像素是黑色,则不进行合成(所以黑色表示透明色-在第二张图片上)。
请问有什么最好的方法可以实现这个功能吗?我可以使用异或或位运算符来完成吗?
如果您能提供任何参考资料或示例代码,我将非常感激。
谢谢大家!
我有一个跟Android相关的问题,我手头有两张图片:
我想实现的是如何将这两张图片合成为一张重叠的图片(就像给图片添加水印一样)。
第二张图片需要先缩放到与第一张图片(相机图片)大小相同,然后如果第二张图片中的像素是黑色,则不进行合成(所以黑色表示透明色-在第二张图片上)。
请问有什么最好的方法可以实现这个功能吗?我可以使用异或或位运算符来完成吗?
如果您能提供任何参考资料或示例代码,我将非常感激。
谢谢大家!
用于叠加两个位图:
public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bmp1, new Matrix(), null);
canvas.drawBitmap(bmp2, 0, 0, null);
return bmOverlay;
}
另外,如果要进行缩放操作,首先应该查看 createScaledBitmap 方法,例如:
Bitmap scaledBitmap = Bitmap.createScaledBitmap(src, dstWidth, dstHeight, filter);