Android中如何给图片添加水印
Android中如何给图片添加水印
这篇文章主要介绍了Android中如何给图片添加水印的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Android中如何给图片添加水印文章都会有所收获,下面我们一起来看看吧。
Android 图片添加水印的实现方法
手机端打水印(文字和图片)使用的是Bitmap、Matrix和Canvas类的一些方法, 可以实现拉伸、旋转、位移等等效果。 原理很简单, 就是在画布Canvas上绘制图形、图片、文字等等, 得到你想要的效果图片。
/*添加全屏斜着45度的文字/publicstaticBitmapdrawCenterLable(Contextcontext,Bitmapbmp,Stringtext){floatscale=context.getResources().getDisplayMetrics().density;//创建一样大小的图片BitmapnewBmp=Bitmap.createBitmap(bmp.getWidth(),bmp.getHeight(),Config.ARGB_8888);//创建画布Canvascanvas=newCanvas(newBmp);canvas.drawBitmap(bmp,0,0,null);//绘制原始图片canvas.save();canvas.rotate(45);//顺时针转45度Paintpaint=newPaint(Paint.ANTI_ALIAS_FLAG);paint.setColor(Color.argb(50,255,255,255));//白色半透明paint.setTextSize(100scale);paint.setDither(true);paint.setFilterBitmap(true);RectrectText=newRect();//得到text占用宽高,单位:像素paint.getTextBounds(text,0,text.length(),rectText);doublebeginX=(bmp.getHeight()/2-rectText.width()/2)*1.4;//45度角度值是1.414doublebeginY=(bmp.getWidth()/2-rectText.width()/2)*1.4;canvas.drawText(text,(int)beginX,(int)beginY,paint);canvas.restore();returnnewBmp;}
使用44KB的png图片验证效率:
longbegin=System.currentTimeMillis();BitmapdestBmp=ImageUtil.drawCenterLable(this,sourBitmap,"某某公司专用");longend=System.currentTimeMillis();Log.d("brycegao","打水印用时:"+(end-begin)+"毫秒");mWartermarkImage.setImageBitmap(destBmp);
小米4手机输出: D/brycegao: 打水印用时:69毫秒
使用3M字节的jpg图片测试打水印,报OOM错误。
java.lang.OutOfMemoryError:Failedtoallocatea467251212byteallocationwith16767536freebytesand110MBuntilOOMatdalvik.system.VMRuntime.newNonMovableArray(NativeMethod)atandroid.graphics.BitmapFactory.nativeDecodeAsset(NativeMethod)atandroid.graphics.BitmapFactory.decodeStream(BitmapFactory.java:613)atandroid.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:446)atandroid.graphics.BitmapFactory.decodeResource(BitmapFactory.java:469)atandroid.graphics.BitmapFactory.decodeResource(BitmapFactory.java:501)
关于“Android中如何给图片添加水印”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Android中如何给图片添加水印”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
android(如何快速开发框架 小米note开发版MIUI,安卓6.0,怎么安装Xposed框架)
稳定版,你必须先根除。你上网搜索安卓可以叫别人s框架,对方可以把框架做成jar包,把这个jar包加载到项目目录的libs文件中使...
-
android(studio 虚拟机启动不了 android studio可以当模拟器用吗)
androidstudio可以当模拟器用吗?AmdCUP引导模拟器有点复杂。雷电模拟器上的抖音怎么登录不上?不是,闪电模拟调用...
-
从实践中学习手机抓包与数据分析(android 手机抓包app)
android手机抓包app?netcapture抓包精灵app(手机抓包工具)又名sslcapture,是什么专业的安卓手机抓...
-
android(studio全局搜索 android studio怎么看app界面)
androidstudio怎么看app界面?在设备桌面点击运用直接进入到App界面,就也可以参与其他你的操作了。android-...
-
怎么把android框架源代码拉到本地(android studio如何运行别人的源代码)
androidstudio如何运行别人的源代码?androidstudio点击刚建在列表中你选择导入module,导入即可在用...
-
android(studio2022年使用教程 怎么安装Android studio详细教程)
怎么安装Androidstudio详细教程?androidstudio中haxm直接安装的方法追加:1、简单的方法打开Andr...
-
怎么使用Android基准配置文件Baseline Profile方案提升启动速度
-
HTML5如何实现禁止android视频另存为
-
学java好还是学php好?
-
Android如何实现多点触控功能