захват изображения с камеры и наложение другого растрового изображения перед его сохранением - PullRequest
1 голос
/ 30 марта 2012

здесь tempdata - это данные, полученные с камеры, savephoto (Bitmap) - это метод, который используется для сохранения изображения, снятого с камеры, и он выполняется точно.я вызываю savephoto (p), он создает пустой файл на карте памяти ... не сохраняя ни одного изображения.Как я могу наложить два растровых изображения друг на друга

[1]File Imgname = Environment.getExternalStorageDirectory();
Bitmap bmp = BitmapFactory.decodeByteArray(tempdata,0,tempdata.length);
imv.setImageBitmap(bmp);
savePhoto(bmp);

[2]Bitmap bmp2 = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);
Bitmap b = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(b);
canvas.drawBitmap(bmp, 0,0, null);
canvas.drawBitmap(bmp2, 50, 50, null);
savePhoto(b);

любая помощь будет принята с благодарностью, чем

1 Ответ

2 голосов
/ 30 марта 2012

вы можете сделать это после получения после получения растрового изображения с камеры (предположите, что bitmap1) и ваше растровое изображение будет наложено поверх растрового изображения1 (предположим, растровое изображение2), вызовите этот overlayMark () с вашими растровыми изображениями, оно вернет растровое растровое изображение, которое является вашим требуемым растровым изображением,Вы можете сохранить это растровое изображение ..

private Bitmap overlayMark(Bitmap bmp1, Bitmap bmp2)    { 
   int bh = originalBitmap.getHeight();
   int bw = originalBitmap.getWidth();
   Bitmap bmOverlay = Bitmap.createBitmap(bw,bh,Bitmap.Config.ARGB_8888); 
   Canvas canvas = new Canvas(bmOverlay); 
   canvas.drawBitmap(bmp1, 0, 0, null);
   canvas.drawBitmap(bmp2, 0,0, null);
   return bmOverlay;
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...