现在的位置: 首页 > 综合 > 正文

Android启动系统默认相机拍照出带水印的照片

2017年12月28日 ⁄ 综合 ⁄ 共 2200字 ⁄ 字号 评论关闭

国庆刚放假完好像上班 不怎么做得下去,想了下整理下放假前做的东西

在界面中按设定好的按钮启动系统默认相机


/**
	 * 启动系统相机
	 * 
	 * @param view
	 */
	public void takePhoto() {
		Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
		startActivityForResult(intent, CASE_CAMERA);
	}

拍照后的回调函数

	/**
	 * 拍照后的回调函数
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		try {
			if (resultCode == Activity.RESULT_OK) {
				if (requestCode == CASE_CAMERA) {
					Bundle extras = data.getExtras();
					// 获取图片信息
					Bitmap bitmap = (Bitmap) extras.get("data");
					// 保存图片
					String imageFilePath = Environment.getExternalStorageDirectory().getAbsolutePath()+ "/tmp/";
////					//图片加水印
					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
					String time = sdf.format(new Date(System.currentTimeMillis()));
					Bitmap mWater = BitmapFactory.decodeResource(getResources(), R.drawable.szglogw);
					Bitmap img = WaterUtils.createBitmap(bitmap, mWater, time);

//					saveImage(bitmap, imageFilePath);
					saveImage(img, imageFilePath);
				}
				doPhoto(requestCode, data);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

加水印的工具类:

package com.szg.utils;

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.graphics.Bitmap.Config;
import android.graphics.Paint.Align;
import android.util.Log;

/**
 * 进行添加为照片添加水印图片和文字 帮助类
 */
public class WaterUtils {
	/**
	 * 进行添加水印图片和文字
	 * 
	 * @param src
	 * @param waterMak
	 * @return
	 */
	public static Bitmap createBitmap(Bitmap src, Bitmap waterMak, String title) {
		if (src == null) {
			return src;
		}
		// 获取原始图片与水印图片的宽与高
		int w = src.getWidth();
		int h = src.getHeight();
		int ww = waterMak.getWidth();
		int wh = waterMak.getHeight();
		Log.i("jiangqq", "w = " + w + ",h = " + h + ",ww = " + ww + ",wh = "
				+ wh);
		Bitmap newBitmap = Bitmap.createBitmap(w, h, Config.ARGB_8888);
		Canvas mCanvas = new Canvas(newBitmap);
		// 往位图中开始画入src原始图片
		mCanvas.drawBitmap(src, 0, 0, null);
		// 在src的右下角添加水印
		Paint paint = new Paint();
		//paint.setAlpha(100);
		mCanvas.drawBitmap(waterMak, w - ww - 5, h - wh - 5, paint);
		// 开始加入文字
		if (null != title) {
			Paint textPaint = new Paint();
			textPaint.setColor(Color.RED);
			textPaint.setTextSize(16);
			String familyName = "宋体";
			Typeface typeface = Typeface.create(familyName,
					Typeface.BOLD_ITALIC);
			textPaint.setTypeface(typeface);
			textPaint.setTextAlign(Align.CENTER);
			mCanvas.drawText(title, w / 2, 25, textPaint);
			
		}
		mCanvas.save(Canvas.ALL_SAVE_FLAG);
		mCanvas.restore();
		return newBitmap;
	}
	

}

加水印的方法网上找到的 

抱歉!评论已关闭.