码迷,mamicode.com
首页 > 移动开发 > 详细

Android 图片添加水印图片或者文字

时间:2015-01-12 22:38:28      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:图片

给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分

添加水印图片:

private Bitmap createWaterMaskImage(Context gContext, Bitmap src, Bitmap watermark)
	{

		String tag = "createBitmap";
		Log.d(tag, "create a new bitmap");
		if (src == null)
		{
			return null;
		}		
		int w = src.getWidth();
		int h = src.getHeight();
		int ww = watermark.getWidth();
		int wh = watermark.getHeight();
		// create the new blank bitmap
		Bitmap newb = Bitmap.createBitmap(w, h, Config.ARGB_8888);// 创建一个新的和SRC长度宽度一样的位图
		Canvas cv = new Canvas(newb);
		// draw src into
		cv.drawBitmap(src, 0, 0, null);// 在 0,0坐标开始画入src
		// draw watermark into
		cv.drawBitmap(watermark, 20, 20, null);// 在src的右下角画入水印
		// save all clip
		cv.save(Canvas.ALL_SAVE_FLAG);// 保存
		// store
		cv.restore();// 存储
		return newb;
	}
添加文字

  public static Bitmap scaleWithWH(Bitmap src, double w, double h) {
	        if (w == 0 || h == 0 || src == null) {
	            return src;
	        } else {
	            // 记录src的宽高
	            int width = src.getWidth();
	            int height = src.getHeight();
	            // 创建一个matrix容器
	            Matrix matrix = new Matrix();
	            // 计算缩放比例
	            float scaleWidth = (float) (w / width);
	            float scaleHeight = (float) (h / height);
	            // 开始缩放
	            matrix.postScale(scaleWidth, scaleHeight);
	            // 创建缩放后的图片
	            return Bitmap.createBitmap(src, 0, 0, width, height, matrix, true);
	        }
	    }
	
	public Bitmap drawTextToBitmap(Context gContext,   
			  int gResId,   
			  String gText) {  
			  Resources resources = gContext.getResources();  
			  float scale = resources.getDisplayMetrics().density;  
			  Bitmap bitmap =   
			      BitmapFactory.decodeResource(resources, gResId);  
			   
			  bitmap = scaleWithWH(bitmap, 300*scale, 300*scale);
			  
			  android.graphics.Bitmap.Config bitmapConfig =  
			      bitmap.getConfig();  
			  
			  
			  
			  // set default bitmap config if none  
			  if(bitmapConfig == null) {  
			    bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;  
			  }  
			  // resource bitmaps are imutable,   
			  // so we need to convert it to mutable one  
			  bitmap = bitmap.copy(bitmapConfig, true);  
			   
			  Canvas canvas = new Canvas(bitmap);  
			  // new antialised Paint  
			  Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);  
			  // text color - #3D3D3D  
			  paint.setColor(Color.RED);    
			  paint.setTextSize((int) (18 * scale));			  
		       paint.setDither(true); //获取跟清晰的图像采样  
		       paint.setFilterBitmap(true);//过滤一些  
			  Rect bounds = new Rect();  
			  paint.getTextBounds(gText, 0, gText.length(), bounds);  			  
			  int x = 30;  
			  int y = 30;  			   
			  canvas.drawText(gText, x * scale, y * scale, paint);  			   
			  return bitmap;  
			} 




Android 图片添加水印图片或者文字

标签:图片

原文地址:http://blog.csdn.net/lichao_ustc/article/details/42649271

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!