【发布时间】:2012-01-28 14:04:58
【问题描述】:
是否可以合并从相机拍摄的文字和照片? 我想在照片上加盖日期和时间,但在 Google 上找不到任何内容。
【问题讨论】:
-
如何将时间戳设置为底部??
是否可以合并从相机拍摄的文字和照片? 我想在照片上加盖日期和时间,但在 Google 上找不到任何内容。
【问题讨论】:
decodeByteArray从您从JPEG图片回调获得的byte[]数组创建一个位图对象
drawText方法在照片上书写文字。 【讨论】:
使用下面的代码来实现你所需要的。
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" />
如果您有任何疑问,请随时提出。我在图片的左上角添加了时间戳,你可以在图片的任意位置更改。
对于我的设备,访问外部 SD 卡的路径是 /sdcard,其他设备可能会有所不同。有些设备可能有 /mnt/sdcard 可能是用于内部 sd 卡。在使用此代码 sn-p 之前检查一下即可。
【讨论】: