I want to merge two bitmaps, here is my code
// Camera arg conversion to Bitmap
Bitmap cameraBitmap = BitmapFactory.decodeByteArray(arg0, 0,
arg0.length);
Bitmap back = Bitmap.createBitmap(cameraBitmap.getWidth(),
cameraBitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas cam = new Canvas(back);
cam.drawBitmap(cameraBitmap, matrix, null);
// FrameLayout to Bitmap
FrameLayout mainLayout = (FrameLayout) findViewById(R.id.frame);
Bitmap foreground = Bitmap.createBitmap(mainLayout.getWidth(),
mainLayout.getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(foreground);
mainLayout.draw(c);
Bitmap cs = null;
cs = Bitmap.createBitmap(foreground.getWidth(), cameraBitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas comboImage = new Canvas(cs);
comboImage.drawBitmap(cameraBitmap, 0f, 0f, null);
comboImage.drawBitmap(foreground, 0f, cameraBitmap.getHeight(), null);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
if (fos != null) {
cs.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.close();
}
} catch (Exception e) {
e.printStackTrace();
}
The camera image should become background, and foreground as top image. I’ve tried from
Combining 2 Images in Android using Canvas but it didn’t help me. Any idea.? Thanks
From your example, you forgot to add the next lines:
In your example above you don’t draw your image in the canvas, and that is the problem.
You can think that your canvas i your sketchbook. For now you didn’t paint anything, and you ask yourself, way I can’t see any colors.
So, for my advice, first create the two bitmaps, then, do the next thing:
You can also do this by first create the drawable objects from your bitmaps, like in the next code:
Then when you have the drawable objects, you can set thier bounds, and that way you set where do you want to show that image.
and finally draw that on the canvas:
EDIT:
This is an example, use this to understand your implementation:
This is what I get from the code above: