public static Bitmap createWaterMaskLeftTop(Bitmap src, Bitmap watermark, int paddingLeft, int paddingTop) { return createWaterMaskBitmap(src, watermark, dp2px(paddingLeft), dp2px(paddingTop)); } public static Bitmap createWaterMaskRightBottom(Bitmap src, Bitmap watermark, int paddingRight, int paddingBottom) { if (src == null) { return null; } if (watermark==null){ return null; } int width = src.getWidth(); int height = src.getHeight(); int screenWidth = ScreenUtils.getScreenWidth(PictureApplication.getInstance()); float scale = width * 1f / screenWidth * 1f; if (scale > 1f) { Matrix matrix = new Matrix(); matrix.postScale(scale, scale); Bitmap bitmap = Bitmap.createBitmap(watermark, 0, 0, watermark.getWidth(), watermark.getHeight(), matrix, true); if (BitmapHelper.isNotEmpty(watermark)&&BitmapHelper.isNotEmpty(bitmap)&&bitmap!=watermark){ BitmapHelper.recycler(watermark); } return createWaterMaskBitmap(src, bitmap, src.getWidth() - bitmap.getWidth() - dp2px(paddingRight), src.getHeight() - bitmap.getHeight() - dp2px(paddingBottom)); } return createWaterMaskBitmap(src, watermark, src.getWidth() - watermark.getWidth() - dp2px(paddingRight), src.getHeight() - watermark.getHeight() - dp2px(paddingBottom)); } private static Bitmap createWaterMaskBitmap(Bitmap src, Bitmap watermark, int paddingLeft, int paddingTop) { if (src == null) { return null; } int width = src.getWidth(); int height = src.getHeight(); Bitmap newb = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);// 创建一个新的和SRC长度宽度一样的位图 //创建一个bitmap //将该图片作为画布 Canvas canvas = new Canvas(newb); //在画布 0,0坐标上开始绘制原始图片 canvas.drawBitmap(src, 0, 0, null); //在画布上绘制水印图片 canvas.drawBitmap(watermark, paddingLeft, paddingTop, null); // 保存 canvas.save(); // 存储 canvas.restore(); return newb; } public static int dp2px(float dp) { final float scale = Resources.getSystem().getDisplayMetrics().density; return (int) (dp * scale + 0.5f); }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)