如何在Android相机活动中添加日期水印

时间:2013-04-01 17:05:29

标签: android android-activity camera

我正在使用下一个代码获取图片:

public void foto(View v) {
    nom_foto = Environment.getExternalStorageDirectory()+ aptr.ruta_temp + cuadrilla + "/" + medidor + "_"+ cont_foto + ".jpg";
    File arch = new File(Environment.getExternalStorageDirectory()+ aptr.ruta_temp+ cuadrilla);
    if (!arch.exists())
        arch.mkdirs();
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    int code = TAKE_PICTURE;
    Uri output = Uri.fromFile(new File(nom_foto));
    intent.putExtra(MediaStore.EXTRA_OUTPUT, output);
    startActivityForResult(intent, code);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == TAKE_PICTURE) {
        ImageView iv = (ImageView) findViewById(R.id.minifoto);
        if (resultCode == RESULT_OK) {
            new MediaScannerConnectionClient() {
                private MediaScannerConnection msc = null;
                {
                    msc = new MediaScannerConnection(getApplicationContext(), this);
                    msc.connect();
                }
                public void onMediaScannerConnected() {msc.scanFile(nom_foto,null); 
                }
            public void onScanCompleted(String path, Uri uri) 
            { msc.disconnect();}};
        Toast.makeText(usuario_lectura.this,"Foto N° " + cont_foto + " agregada  correctamente",    Toast.LENGTH_LONG).show();
        cont_foto++;
        iv.setVisibility(View.VISIBLE);
        iv.setImageBitmap(BitmapFactory.decodeFile(nom_foto));
        }
    }
    if (resultCode == RESULT_CANCELED) {
        File file = new File(nom_foto);
        if (file.exists())
            file.delete();
        }
    }
}

一切正常,图片已正确拍摄并保存在SD卡上......但是,我必须添加一个水印,包括日期......如何添加它?,相机活动不给我这些选择......

1 个答案:

答案 0 :(得分:0)

要从相机为图像添加文字或图形水印,您必须打开图片,在Canvas中使用Paint/Graphics叠加层进行编辑,然后将其重新编码为。 jpg图像,并将其重新保存为SD卡上的文件。您可以从相机保存原始文件。所有这些步骤都相当简单。

然而,有一个严重的障碍。

大多数设备无法在单个位图中打开相机中的全尺寸图像。没有足够的堆内存可用。因此,您必须使用比例因子inSampleSize来打开图像。因此,水印图像将永远小于相机原件的某些因素。

我认为没有办法绕过这个问题:(