Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 圖片添加水印圖片或者文字

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

編輯:關於Android編程

給圖片添加水印的基本思路都是載入原圖,添加文字或者載入水印圖片,保存圖片這三個部分

添加水印圖片:

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;  
			} 




  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved