Я пытаюсь сделать снимок с камеры и наложить логотип в верхнем левом углу этого снимка.Я попробовал метод наложения с использованием Canvas, но он не работает.Вот мой код:
Этот метод предназначен для сохранения изображения в хранилище
public void saveBitmapToGallery(Bitmap bm, String picturename) {
String root = Environment.getExternalStorageDirectory().toString();
File mydir = new File(picturepath);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
displayheight = dm.heightPixels;
displaywidth = dm.widthPixels;
File file = new File(mydir, picturename + ".JPG");
try {
FileOutputStream fos = new FileOutputStream(file);
Bitmap.createScaledBitmap(bm, displaywidth, displayheight, true);
bm.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Это метод, который я написал для наложения растрового изображения на изображение:
public Bitmap embedBitmap(Bitmap src){ // This method receives the bitmap from the OnActivityResult method
int bitmapwidth = src.getWidth();
int bitmapheight = src.getHeight();
int logowidth = logo.getWidth();
int logoheight = logo.getHeight();
float marginLeft = (float) (bitmapwidth * 0.5 - logowidth * 0.5);
float marginTop = (float) (bitmapheight * 0.5 - logoheight * 0.5);
//Bitmap dest = Bitmap.createBitmap(bitmapwidth,bitmapheight,src.getConfig());
Canvas cv = new Canvas(src);
//cv.drawBitmap(src,new Matrix(),null);
cv.drawBitmap(logo, 0,0,new Paint());
saveBitmapToGallery(src, picturename);
return src;
}
}
Дайте мне знать, что нужно сделать.Спасибо.