我有这两个图像,我基本上在画布上合并。现在我想将该画布保存到图像中。我该怎么做或者是否有其他方法来合并两个图像。
我的示例代码是 -
Bitmap bmp1 = BitmapFactory.decodeResource(getResources(),
R.drawable.duckpic);
Bitmap bmp2 = BitmapFactory.decodeResource(getResources(),
R.drawable.img);
// canvas.drawColor(Color.BLACK);
// canvas.drawBitmap(_scratch, 10, 10, null);
Bitmap bmOverlay = Bitmap.createBitmap(bmp2.getWidth(), bmp2
.getHeight(), bmp2.getConfig());
// Canvas cs = new Canvas(bmp2);
canvas.scale((float) 0.5, (float) 0.5);
canvas.drawBitmap(bmp2, new Matrix(), null);
canvas.drawBitmap(bmp1, new Matrix(), null);
canvas.save();
我这样做了 -
cs = Bitmap.createBitmap(c.getWidth(), c.getHeight(), Bitmap.Config.ARGB_8888);
Canvas comboImage = new Canvas(cs);
comboImage.drawBitmap(s, new Matrix(), null);
comboImage.drawBitmap(c, new Matrix(), null);
comboImage.save();
// this is an extra bit I added, just incase you want to save the new
// image somewhere and then return the location
String tmpImg = String.valueOf(System.currentTimeMillis()) + ".png";
OutputStream os = null;
try {
os = new FileOutputStream("/sdcard/" + tmpImg);
cs.compress(CompressFormat.PNG, 100, os);
} catch (IOException e) {
Log.e("combineImages", "problem combining images", e);
}
基本上这里给出了 - http://www.jondev.net/articles/Combining_2_Images_in_Android_using_Canvas
答案 0 :(得分:3)
使用canvas.setBitmap(Bitmap bitmap)。这会将画布发送到指定的位图。您需要为此创建一个新的可变位图。调用setBitmap
后,您可以将该位图保存到文件中。
答案 1 :(得分:2)
使用此链接.......它可能对你有所帮助。 https://github.com/hotveryspicy/MaskImage