问题描述
|
我有这两个图像,基本上是在画布上合并的。现在我想将该画布保存为图像。我应该怎么做,或者是否有其他方法可以合并两个图像。
我的示例代码是-
Bitmap bmp1 = BitmapFactory.decodeResource(getResources(),R.drawable.duckpic);
Bitmap bmp2 = BitmapFactory.decodeResource(getResources(),R.drawable.img);
// canvas.drawColor(Color.BLACK);
// canvas.drawBitmap(_scratch,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,null);
canvas.save();
我这样做可以使它正常工作-
cs = Bitmap.createBitmap(c.getWidth(),c.getHeight(),Bitmap.Config.ARGB_8888);
Canvas comboImage = new Canvas(cs);
comboImage.drawBitmap(s,null);
comboImage.drawBitmap(c,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
解决方法
使用canvas.setBitmap(Bitmap位图)。这会将画布发送到指定的位图。您将为此创建一个新的可变位图。调用“ 2”后,您可以将该位图保存到文件中。