如何将位图叠加在特定 XY 位置的另一个位图上
How to overlay bitmap over another bitmap at particular XY position
我正在开发一个我使用过 canvas 的项目,用户可以通过触摸将一个位图叠加层移动到另一个位图。当用户按下保存按钮时,两个位图应该合并并成为一个位图。我已经完成了所有的事情,现在在 XY 位置合并两个位图仍然存在。在我的研究过程中,我发现了以下代码。
private 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, new Matrix(), null);
return bmOverlay;
}
但是这段代码在 (0,0) 位置覆盖了位图。我想在给定位置叠加位图。请提出一些解决方案。提前致谢。
使用下面的代码
private 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, x,y, null);
return bmOverlay;
}
其中 x 和 y 是您必须绘制叠加位图的实际位置。
我正在开发一个我使用过 canvas 的项目,用户可以通过触摸将一个位图叠加层移动到另一个位图。当用户按下保存按钮时,两个位图应该合并并成为一个位图。我已经完成了所有的事情,现在在 XY 位置合并两个位图仍然存在。在我的研究过程中,我发现了以下代码。
private 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, new Matrix(), null);
return bmOverlay;
}
但是这段代码在 (0,0) 位置覆盖了位图。我想在给定位置叠加位图。请提出一些解决方案。提前致谢。
使用下面的代码
private 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, x,y, null);
return bmOverlay;
}
其中 x 和 y 是您必须绘制叠加位图的实际位置。