Android中如何给图片添加水印
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍了Android中如何给图片添加水印的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android中如何给图片添加水印文章都会有所收获,下面我们一起来看看吧
千家信息网最后更新 2025年01月23日Android中如何给图片添加水印
这篇文章主要介绍了Android中如何给图片添加水印的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android中如何给图片添加水印文章都会有所收获,下面我们一起来看看吧。
Android 图片添加水印的实现方法
手机端打水印(文字和图片)使用的是Bitmap、Matrix和Canvas类的一些方法, 可以实现拉伸、旋转、位移等等效果。 原理很简单, 就是在画布Canvas上绘制图形、图片、文字等等, 得到你想要的效果图片。
/* 添加全屏斜着45度的文字 / public static Bitmap drawCenterLable(Context context, Bitmap bmp, String text) { float scale = context.getResources().getDisplayMetrics().density; //创建一样大小的图片 Bitmap newBmp = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Config.ARGB_8888); //创建画布 Canvas canvas = new Canvas(newBmp); canvas.drawBitmap(bmp, 0, 0, null); //绘制原始图片 canvas.save(); canvas.rotate(45); //顺时针转45度 Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(Color.argb(50, 255, 255, 255)); //白色半透明 paint.setTextSize(100 scale); paint.setDither(true); paint.setFilterBitmap(true); Rect rectText = new Rect(); //得到text占用宽高, 单位:像素 paint.getTextBounds(text, 0, text.length(), rectText); double beginX = (bmp.getHeight()/2 - rectText.width()/2) * 1.4; //45度角度值是1.414 double beginY = (bmp.getWidth()/2 - rectText.width()/2) * 1.4; canvas.drawText(text, (int)beginX, (int)beginY, paint); canvas.restore(); return newBmp; }
使用44KB的png图片验证效率:
long begin = System.currentTimeMillis();Bitmap destBmp = ImageUtil.drawCenterLable(this, sourBitmap, "某某公司专用");long end = System.currentTimeMillis();Log.d("brycegao", "打水印用时:" + (end-begin) + "毫秒");mWartermarkImage.setImageBitmap(destBmp);
小米4手机输出: D/brycegao: 打水印用时:69毫秒
使用3M字节的jpg图片测试打水印,报OOM错误。
java.lang.OutOfMemoryError: Failed to allocate a 467251212 byte allocation with 16767536 free bytes and 110MB until OOM at dalvik.system.VMRuntime.newNonMovableArray(Native Method) at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:613) at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:446) at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:469) at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:501)
关于"Android中如何给图片添加水印"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Android中如何给图片添加水印"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
图片
水印
文字
知识
内容
手机
效果
方法
画布
篇文章
原始
价值
像素
公司
单位
原理
图形
大小
字节
小米
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库快照的用途
vcu软件开发用什么工具
为什么软件开发一定要互联网
人机自然交互与软件开发
富工业互联网科技
海曙直销软件开发工程
xmpp服务器软件
提示网络安全博览会
大数据应用数据库设计
靠谱的软件开发系统
计算机网络技术 电子教案
软件开发延期申请
如何理解数据库安全
服务器如何安装fluent
济宁ios软件开发外包公司
佛山三水软件开发培训
如何将服务器ip挂上公网
中国移动电影解说服务器
html 调用数据库
哪个平台的云服务器靠谱
测试服务器的带宽
数据库考试管理系统设计
软件开发市场前景分析
长春一三科技互联网
甘肃网络技术服务代理商
图书馆公众号数据库er图
ERP是基于数据库技术
三明学院计算机网络技术
弱电工程服务器本地安装
自己搭建的邮件服务器利弊