照片上的文本(日期)时间戳

3

是否可以合并从相机拍摄的文本和照片? 我想在照片上盖上日期和时间,但是我在谷歌上找不到任何信息。


如何将时间戳设置到底部? - Ajay Mistry
2个回答

8
使用以下代码实现您所需的功能。
        Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.cuty); // the original file is cuty.jpg i added in resources
        Bitmap dest = Bitmap.createBitmap(src.getWidth(), src.getHeight(), Bitmap.Config.ARGB_8888);

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateTime = sdf.format(Calendar.getInstance().getTime()); // reading local time in the system

        Canvas cs = new Canvas(dest);
        Paint tPaint = new Paint();
        tPaint.setTextSize(35);
        tPaint.setColor(Color.BLUE);
        tPaint.setStyle(Style.FILL);
        cs.drawBitmap(src, 0f, 0f, null);
        float height = tPaint.measureText("yY");
        cs.drawText(dateTime, 20f, height+15f, tPaint);
        try {
            dest.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/sdcard/timeStampedImage.jpg")));
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

您需要在清单文件中使用以下权限。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

如果您有任何疑问,请随时问我。我将把时间戳添加到图像的左上角,您可以将其更改为图像的任何位置。

对于我的设备,路径是/sdcard以访问外部SD卡,其他设备可能会有所不同。一些设备可能会有/mnt/sdcard,这可能是用于内部SD卡的。在使用此代码片段之前,请先检查它。


1
你好,Yugandhar Babu,希望你一切都好。我想在视频录制时添加日期和时间戳,就像你上面的图像代码一样,在播放视频时显示日期和时间。我已经按照你提供的图像代码完成了,并且它运行良好,现在我想为视频添加此功能。任何帮助将不胜感激。谢谢。 - SRam
1
@saurabhtrivedi 抱歉,我无法满足您的需求。目前我正忙于 Android 移植工作,而非 Android 应用程序开发。 - Yugandhar Babu
1
@YugandharBabu,你有没有找到视频的解决方案? - Parag Chauhan
1
当我加载从相机拍摄的大型图像时,我遇到了内存不足异常,我已经尝试使用android:largeHeap="true",但仍然没有效果。 - Akshay Katariya

2
  • 使用方法decodeByteArray从JPEG图片回调中获取的byte[]数组创建位图对象。
  • 使用上述创建的位图创建画布对象。
  • 使用drawText方法在画布对象上写入文本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接