Я использую намерение захватить изображение с помощью приложения для фотоаппаратов на складе. На самом деле это пример кода с сайта разработчиков Android, о том, как делать фотографии просто, с некоторыми настройками, которые соответствуют потребностям моего приложения.Android - Как сделать водяное знаком изображение перед его сохранением
public void dispatchTakePictureIntent(int actionCode) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File f = null;
try {
f = setUpPhotoFile();
mCurrentPhotoPath = f.getAbsolutePath();
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
} catch (IOException e) {
e.printStackTrace();
f = null;
mCurrentPhotoPath = null;
}
startActivityForResult(takePictureIntent, actionCode);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImageBitmap = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
mAlbumStorageDirFactory = new FroyoAlbumDirFactory();
} else {
mAlbumStorageDirFactory = new BaseAlbumDirFactory();
}
dispatchTakePictureIntent(ACTION_TAKE_PHOTO);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (mCurrentPhotoPath != null) {
Intent mediaScanIntent = new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE");
File f = new File(mCurrentPhotoPath);
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
this.sendBroadcast(mediaScanIntent);
mCurrentPhotoPath = null;
}
dispatchTakePictureIntent(ACTION_TAKE_PHOTO);
}
else{
finish();
}
}
и метод, который содержит водяные знаки растрового изображения со строкой.
public static Bitmap mark(Bitmap src, String watermark) {
int w = src.getWidth();
int h = src.getHeight();
Bitmap result = Bitmap.createBitmap(w, h, src.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(src, 0, 0, null);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setTextSize(18);
paint.setAntiAlias(true);
paint.setUnderlineText(true);
canvas.drawText(watermark, 20, 25, paint);
return result;
}
Проблема заключается в том, что я не могу получить растровое изображение для использования этого метода.
Большое спасибо заранее!
Создание растрового изображения из данных, возвращаемых камерой – Praveen
я могу преобразовать файл F в растровом изображении, а затем использовать метод метки, но после того, что? – Vissarionas
Сохраните его в файле – Praveen