为图片增加水印我们可以通过canvas来绘制,首先我们新创建一个工具类:

object WaterMarkHelper {fun createWaterMaskBitmap(context: Activity?, src: Bitmap, watermark: String, paddingLeft: Int, paddingTop: Int): Bitmap {//底层图片宽高val width = src.widthval height = src.heightval paint = Paint()//初始化笔with(paint) {color = Color.parseColor("#ffe5e5e5")isAntiAlias = truetextSize = 24f}//测量文字宽度val textWidth = paint.measureText(watermark).toInt()//创建一个bitmapval newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)// 创建一个新的和SRC长度宽度一样的位图val canvas = Canvas(newBitmap)//将该图片作为画布,绘制开始坐标根据图片宽高决定canvas.drawBitmap(src, (canvas.width - width) / 2f,(canvas.height - height) / 2f, null)//绘制水印for (i in paddingTop..height step 150) {for (j in paddingLeft..width step 150 + textWidth) {canvas.drawText(watermark, j.toFloat(), i.toFloat(), paint)}}// 保存canvas.save()// 存储canvas.restore()return newBitmap}

调用下载图片,添加水印,并且刷新图库:

private fun downFile(bitMap: Bitmap, saveDir: String) {val fileName = Date().time.toString() + ".jpg"val file = File(saveDir)if (!file.exists()) {file.mkdir()//如果路径不存在就先创建路径}//多重File目录下再次新建File对象,否则拿到的不是文件,而是路径val picFile = File(file, fileName)try {//绘制水印val newBitmap =    WaterMarkHelper.createWaterMaskBitmap(mActivity, bitMap, userName?: "", 10, 10)val fos = FileOutputStream(picFile)//通过io流的方式来压缩保存图片val isSuccess = newBitmap.compress(Bitmap.CompressFormat.JPEG, 60, fos)fos.flush()fos.close()//把文件插入到系统图库//2020/1/11 android X 弃用insertImage()方法,直接设置IS_PENDINGif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {MediaStore.Images.Media.IS_PENDING} else {MediaStore.Images.Media.insertImage(context?.contentResolver, picFile.absolutePath, fileName, null)}//保存图片后发送广播通知更新数据库val uri = Uri.fromFile(picFile)context?.sendBroadcast(Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri))} catch (e: IOException) {e.printStackTrace()}}

Android——为图片增加水印,并且保存到图库刷新相关推荐

  1. 原生js-实现给图片增加水印

    使用原生js给图片增加水印 支持自定义 [ 水印旋转角度.字体大小.字体颜色.稠密度- ] 效果图 直接上代码(含注释) HTML代码 <img src="../images/birt ...

  2. Android实现图片加水印,视频水印

    Android实现图片加水印,视频加水印 推荐经典用例,超级简单的视频加水印,图片加水印功能. 视频加水印: Android拍视频加水印功能 图片加水印 Android轻松实现拍照加水印

  3. 使用PIL包给图片增加水印

    今天同事认真地做了笔记发群里,然后调侃她应该加上水印,以示版权,于是小伙伴纷纷找起了图片软件,美图秀秀好像就可以.于是乎立刻想起来Python这么强大,应该可以处理,PIL(python imagin ...

  4. 改造Kindeditor之:自定义图片上传插件。 外加给图片增加水印效果的选择。

    场景: 编辑部人士编辑文章时需要在文章中上传图片.但上传图片时需要增加是否增加水印的选择(有可能是自己公司的原创作品).所以需要改造Kindeditor . 1: 删除Kindeitor 默认的参数对 ...

  5. python图片加水印_怎么在照片上加水印-用Python实现给图片增加水印

    背景描述 在写文章的时候,经常需要用到一些图,为了访问被别人盗图,通常的做法是给图片添加水印. 本文分享如何使用python批量给图片添加水印. 界面展示 软件的界面如下: 软件的效果如下: 功能介绍 ...

  6. android给图片加水印的极简实现方式

    工作日志:其实这是两年前就碰到的需求,之前没有整理,也没有继续优化和实现,这次又用到这样的需求,所以记录下来,既是一种代码记录,也是一种复习bitmap和canvas的好手段,这里提供一种思路,就是将 ...

  7. Android给图片加水印

    try { ImageView img=(ImageView) findViewById(R.id.test_img_file); //获取从本地获取的文件路径,用FileInputstream读入文 ...

  8. android 给图片加水印

    生成水印照片类 package com.chinawit.cwandroidbase.Infrastructure.CWComponent.CWImage.WaterMark; import andr ...

  9. android 照片加水印,Android 实现图片加水印或logo

    我们常常会遇到为图像加水印或logo的需求,一般可以通过三方库或者软件实现,但其实加水印非常简单,仅用一个函数即可实现. 实现思路,逐一计算水印和原图重叠部分的像素点的RGBA分量: float pe ...

最新文章

  1. matplotlib01-plot折线图、scatter散点图
  2. 六月第一枪:股市震荡,下一步该做什么?
  3. php stortime,文件存储 - Laravel 5.8 中文文档手册 - php中文网手册
  4. jatoolsprinter web打印控件直接打印不弹出
  5. ARM Linux 3.x的设备树(Device Tree)
  6. 中矿新生赛 H 璐神看岛屿【BFS/DFS求联通块/连通块区域在边界则此连通块无效】...
  7. PHP CodeBase: 判断用户是否手机访问
  8. 一个内存增长问题的分析和处理(二)——valgrind工具的用法
  9. 数组使用方法集合(建议收藏)
  10. xshell远程控制(连接)两个VMware同时启动的Linux操作系统
  11. C++ UPD广播异步发包工具
  12. cad卸载不干净_Mac软件卸载不干净?你可以试试AppCleaner
  13. Windows使用批处理文件更改指定目录下的文件名(含序号)
  14. iphone手机显示itunes store无法连接服务器,iPhone无法连接到iTunes Store解决方法大全...
  15. android app 运行时提示 应用专为旧版 Android 打造
  16. a different object with the same identifier value was already associated whith
  17. 无盘疑难杂症的处理和网络的设置(转)
  18. 浏览器是如何渲染页面的?
  19. 品西游之馒头引起的血案(上)
  20. 多个USB转串口设备区分方法

热门文章

  1. 中国地区三级联动下拉菜单
  2. 工业相机基本参数以及选型参考(二)
  3. centos8 解决编译安装 nginx时遇到的报错
  4. c语言 vc++6.0 插入图片,C语言VC++6.0环境中如何插入图片
  5. 帮助你更好的理解Spring循环依赖
  6. 通信手机术语:什么是IMEI IMEI串号组成
  7. 【点云分割】边界分割对点云分割的监督学习(CBL)
  8. 今天汉化了一个便签软件A note,遵守GNU的自由软件
  9. 欢祝圣诞——北斗星的爱!
  10. 微信小程序中苹果iOS手机显示时间格式NaN不正确的问题