android camera添加 时间戳

转载 2013年12月04日 15:05:38
要实现在拍摄的照片上添加时间戳功能,可以参考以下修改方法。
 

filesave.java中做如下修改:

 

1 添加以下两个函数:

 public Bitmap createBitmap(Bitmap src, long dateTaken) {

        //

        String datetime = DateFormat.format("yyyy:MM:dd kk:mm:ss", dateTaken).toString();

        //

        int w = src.getWidth();

        int h = src.getHeight();

     

        Bitmap bmpTemp = Bitmap.createBitmap(w, h, Config.ARGB_8888);

        Canvas canvas = new Canvas(bmpTemp);

        Paint p = new Paint();

        String fontName = "serif";

        int textSize = 60;

        Typeface font = Typeface.create(fontName, Typeface.NORMAL);

        p.setColor(Color.BLUE);

        p.setTypeface(font);

        p.setTextSize(textSize);

          canvas.drawBitmap(src, 0, 0, p);

 

        canvas.drawText(datetime, 0, textSize, p);

        canvas.save(Canvas.ALL_SAVE_FLAG);

        canvas.restore();

        return bmpTemp;

    }

 

    //

    public void compressAndSaveBitmap(Bitmap rawBitmap, String mFilePath, int quality){

        File saveFile= new File(mFilePath);

        if (saveFile.exists()) {

            saveFile.delete();

        }

        try {

            FileOutputStream fileOutputStream = new FileOutputStream(saveFile);

            if (fileOutputStream != null) {

                rawBitmap.compress(Bitmap.CompressFormat.JPEG, quality, fileOutputStream);

            }

            fileOutputStream.flush();

            fileOutputStream.close();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

 

2 添加以下代码:

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Color;

import android.graphics.Paint;

import android.graphics.Typeface;

import android.graphics.Bitmap.Config;

import android.text.format.DateFormat;

import android.graphics.Rect;

 

3 PhotoOperatorsaveRequest()中做如下修改:

try {

                // Write to a temporary file and rename it to the final name. This

                // avoids other apps reading incomplete data.

                out = new FileOutputStream(mTempFilePath);

                out.write(mData);

                out.close();

                new File(mTempFilePath).renameTo(new File(mFilePath));

            } catch (IOException e) {

                Log.e(TAG, "Failed to write image", e);

            } finally {

                if (out != null) {

                    try {

                        out.close();

                    } catch (IOException e) {

                        Log.e(TAG, "saveRequest()", e);

                    }

                }

            }

//add for timestamp

                Log.v(TAG, "mFilePath=" + mFilePath);

           try {

                ExifInterface exif = new ExifInterface(mFilePath);

                 String model = exif.getAttribute(ExifInterface.TAG_MODEL);    

                Bitmap bitmap = BitmapFactory.decodeFile(mFilePath, null);//

                Bitmap markbitmap = createBitmap(bitmap, mDateTaken);//

                compressAndSaveBitmap(markbitmap, mFilePath, 80);//

                //exif.setAttribute(ExifInterface.TAG_MODEL,model);

                   exif.saveAttributes();

           }catch(IOException ex){

             Log.e(TAG, " IOException"  );

           }

// add end

 

            mMimeType = Storage.generateMimetype(mTitle, mTempPictureType);

            mMpoType = Storage.generateMpoType(mTempPictureType);

            saveImageToDatabase(this);

            if (LOG) {

                Log.v(TAG, "saveRequest() mTempJpegRotation=" + mTempJpegRotation

                        + ", mOrientation=" + mOrientation);

            }

Android录像时添加时间水印

在网上搜索整理了下,有三篇有用的文章,原理也是一样。 实现步骤说明在这里Android 录制视频添加时间水印 上面也仅给出了步骤,具体代码在增加录像时间戳水印、 camera框架介绍 可以找到。从博...
  • yuxiangyunei
  • yuxiangyunei
  • 2017年05月24日 10:45
  • 1690

拍照时增加时间戳到照片右下角

方法1:使用rawdata数据生成bitmap文件,增加时间戳到bitmap,把新的bitmap数据保存到jpeg文件中 方法2: 保存文件成功后  打开文件生成bitmap文件,删除源文件,增加时间...
  • jimbo_lee
  • jimbo_lee
  • 2016年03月19日 14:25
  • 1258

[FAQ09818]实现在拍摄的照片上添加时间戳功能

[DESCRIPTION] 要实现在拍摄的照片上添加时间戳功能,可以参考以下修改方法。   [SOLUTION]   在filesave.java中做如下修改: 1...
  • wds1181977
  • wds1181977
  • 2016年03月05日 16:41
  • 621

增加录像时间戳水印、 camera框架介绍

最近项目上要在mtk6589机器上增加录像的水印功能,那
  • jimbo_lee
  • jimbo_lee
  • 2014年05月29日 17:02
  • 5233

增加录像时间戳水印、 camera框架介绍

分类: android2014-05-29 17:02 129人阅读 评论(1) 收藏 举报 Androidc++camera位图水印 最近项目上要在mtk6589机器上增加录像的水印...
  • mirkerson
  • mirkerson
  • 2014年08月29日 09:47
  • 11679

拍照时增加时间戳到照片右下角

方法1:使用rawdata数据生成bitmap文件,增加时间戳到bitmap,把新的bitmap数据保存到jpeg文件中 方法2: 保存文件成功后  打开文件生成bitmap文件,删除源文件,增加时间...
  • jimbo_lee
  • jimbo_lee
  • 2016年03月19日 14:25
  • 1258

增加录像时间戳水印、 camera框架介绍

分类: android2014-05-29 17:02 129人阅读 评论(1) 收藏 举报 Androidc++camera位图水印 最近项目上要在mtk6589机器上增加录像的水印...
  • mirkerson
  • mirkerson
  • 2014年08月29日 09:47
  • 11679

增加录像时间戳水印、 camera框架介绍

最近项目上要在mtk6589机器上增加录像的水印功能,那
  • jimbo_lee
  • jimbo_lee
  • 2014年05月29日 17:02
  • 5233

android camera程序源代码,可连拍,未添加储存功能,注释详细

  • 2011年09月01日 10:07
  • 53KB
  • 下载

Android Camera添加水印(编码)

  • 2017年11月10日 11:19
  • 32KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android camera添加 时间戳
举报原因:
原因补充:

(最多只允许输入30个字)