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

來源:互聯網
上載者:User

標籤:圖片

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

添加浮水印圖片:

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 bitmapBitmap newb = Bitmap.createBitmap(w, h, Config.ARGB_8888);// 建立一個新的和SRC長度寬度一樣的位元影像Canvas cv = new Canvas(newb);// draw src intocv.drawBitmap(src, 0, 0, null);// 在 0,0座標開始畫入src// draw watermark intocv.drawBitmap(watermark, 20, 20, null);// 在src的右下角畫入浮水印// save all clipcv.save(Canvas.ALL_SAVE_FLAG);// 儲存// storecv.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 圖片添加浮水印圖片或者文字

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.