美文网首页
android 图片照相 添加水印

android 图片照相 添加水印

作者: 客观开发者 | 来源:发表于2021-08-27 13:20 被阅读0次

图片选择和图片照相功能。

图片选择和调用 照相机。进行 知乎 matisse 进行了修改,适配了andorid10
下载地址
https://gitee.com/OptimisticDevelopers/app/tree/master/libs

使用方法

点击使用
 binding.buttonTake.setOnClickListener {
            MatissePhotoManager.getInstance().with(this)
                .setCallback(object : MatissePotoScanCallback<ArrayList<String>> {
                    override fun onCompleted(p0: ArrayList<String>) {
回调方法
                        println(p0.toString())
                    }

                    override fun onError(p0: Throwable?) {
                        TODO("Not yet implemented")
                    }

                    override fun onCancel() {
                        TODO("Not yet implemented")
                    }

                })
                // 从图库里面 图片只能选择一张
                .startPhotograph(1)
                // 从图库里面 视频 只能选择一张
                .startVideo(1)
               // 照相机,缩略图 (这个有个bug )
                .startCamera()
                //调用照相机
                .startPhotoCamera()
        }

这个也需要加上

  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        MatissePhotoManager.getInstance().with(this).onActivityResult(requestCode, resultCode, data)
    }

以上需要权限,需要权限,权限;;

开始获取图片,添加水印

https://github.com/Yuhoon/WaterMask 这个有个方法。但是不是自己自定义 的。

最终结果


image.png

主要方法


 /**
     * 图片上绘制文字
     *
     * @param bitmap
     * @param text
     * @param paint
     * @param paddingLeft
     * @param paddingTop
     * @return
     */
    private static Bitmap drawTextToBitmap(Bitmap bitmap, String text, Paint paint,
                                           int paddingLeft, int paddingTop) {
        Bitmap.Config bitmapConfig = bitmap.getConfig();
        paint.setAlpha(100);
        paint.setDither(true); // 获取跟清晰的图像采样
        paint.setFilterBitmap(true);// 过滤一些
        if (bitmapConfig == null) {
            bitmapConfig = Bitmap.Config.ARGB_8888;
        }
        bitmap = bitmap.copy(bitmapConfig, true);
        Canvas canvas = new Canvas(bitmap);

        canvas.drawText(text, paddingLeft, paddingTop, paint);
        return bitmap;
    }

  @param paddingLeft
  @param paddingTop

是左边的位置和上面的位置。。。

 Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
        paint.setColor(color);
        paint.setTextSize(size);
画笔设置,主要设置颜色和字体大小

文字大小的时候,我还 天真的以为他得 用dp转px或sp。都是很小的,直接写大小反而对了。
获取颜色。getResource.getColor 或 ContextCompat.getColor( 来获获取。

剩下就行bitmap 的 之间的流转了。

照相获取bitmap或uri 以及file
这个三个 东东总是,获取的时候,保存的时候,然后互相转换。
互相转换 了

这样就会牵动android 版本。变化的处理。

以及,图片是不是要进行图库里面更新一下呢?

还有保存地方的处理,缓存到图库里面更新移动处理。

相关文章

网友评论

      本文标题:android 图片照相 添加水印

      本文链接:https://www.haomeiwen.com/subject/oelmiltx.html