android图片加水印

public static Bitmap createWaterMaskBitmap(Bitmap src, Bitmap watermark) {
        int paddingTop ;
        if (src == null) {
            return null;
        }
        //获取图片宽高
        int width = src.getWidth();
        int height = src.getHeight();
        //获取水印图片宽高
        int watermarkWidth = watermark.getWidth();
        int watermarkHeight = watermark.getHeight();
        //缩小或者放大水印图片  使水印宽度与图片一致
        if (width > 0 && watermarkWidth > 0) {
            float scale = ((float) width) / watermarkWidth;
            // 取得想要缩放的matrix参数
            Matrix matrix = new Matrix();
            matrix.postScale(scale, scale);
            // 得到新的水印图片
            watermark = Bitmap.createBitmap(watermark, 0, 0, watermarkWidth, watermarkHeight, matrix, true);
            watermarkHeight = watermark.getHeight();
        }
        if (height > watermarkHeight) {
            //设置水印图片竖直位置在图片中间
            paddingTop = (height - watermarkHeight) / 2;
        } else {
            paddingTop = 0;
        }
        //创建一个bitmap
        Bitmap newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);// 创建一个新的和SRC长度宽度一样的位图
        //将该图片作为画布
        Canvas canvas = new Canvas(newBitmap);
        //在画布 0,0坐标上开始绘制原始图片
        canvas.drawBitmap(src, 0, 0, null);
        // 建立Paint 物件
        Paint vPaint = new Paint();
        vPaint.setStyle(Paint.Style.STROKE);   //空心
        vPaint.setAlpha(80);
        //在画布上绘制水印图片
        canvas.drawBitmap(watermark, 0, paddingTop, vPaint);
        // 保存
        canvas.save(Canvas.ALL_SAVE_FLAG);
        // 存储
        canvas.restore();
        return newBitmap;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容