Android 图片添加文字水印

jopen 5年前

        /**            * 添加文字到图片,类似水印文字。            * @param gContext            * @param gResId            * @param gText            * @return            */            public static Bitmap drawTextToBitmap(Context gContext, int gResId, String gText) {                Resources resources = gContext.getResources();                float scale = resources.getDisplayMetrics().density;                Bitmap bitmap = BitmapFactory.decodeResource(resources, gResId);                        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.rgb(61,61,61));                // text size in pixels                paint.setTextSize((int) (14 * scale*5));                // text shadow                paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);                        // draw text to the Canvas center                Rect bounds = new Rect();                paint.getTextBounds(gText, 0, gText.length(), bounds);        //      int x = (bitmap.getWidth() - bounds.width()) / 2;        //      int y = (bitmap.getHeight() + bounds.height()) / 2;                //draw  text  to the bottom                int x = (bitmap.getWidth() - bounds.width())/10*9 ;                int y = (bitmap.getHeight() + bounds.height())/10*9;                canvas.drawText(gText, x , y, paint);                        return bitmap;            }