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原生方法打水印, 应该先将压缩分辨率, 避免OOM的情况, 但是影响清晰度; 大部分app都是将原图传到服务器, 在后台打水印。
因为原生方法有分辨率和内存限制, 听说七牛的图片库(支持打水印)很好用, 看看是否可以落地到各种配置的Android手机中。
Android图片打水印相关推荐
- Android 时间 定位 图片水印,android图片加水印
public static Bitmap createWaterMaskBitmap(Bitmap src, Bitmap watermark) { int paddingTop ; if (src ...
- android图片加水印,文字
两种方法:1.直接在图片上写文字String str = "PICC要写的文字";ImageView image = (ImageView) this.findViewById(R ...
- android图片上水印字体颜色,Android给图片添加文字和水印
话不多说 上图 gif5新文件.gif public class ImageUtil { /** * 设置水印图片在左上角 * * @param context 上下文 * @param src * ...
- Android——为图片增加水印,并且保存到图库刷新
为图片增加水印我们可以通过canvas来绘制,首先我们新创建一个工具类: object WaterMarkHelper {fun createWaterMaskBitmap(context: Acti ...
- android水印控件,Android图片添加文字水印并保存水印文字图片到指定文件
Android图片添加文字水印并保存水印文字图片到指定文件package zhangphil.test;import android.graphics.Bitmap;import android.gr ...
- Android实现图片加水印,视频水印
Android实现图片加水印,视频加水印 推荐经典用例,超级简单的视频加水印,图片加水印功能. 视频加水印: Android拍视频加水印功能 图片加水印 Android轻松实现拍照加水印
- android实现自定义相机以及图片的水印
最近在做图片的水印功能,也就研究了一下android的相机.在android中有两种方式可以进行拍照,一种是调用系统的拍照功能调用方式比较简单而且不需要权限. 调用方式: //照相机中获取照片publ ...
- android:给图片打水印
现在是维护知识产权的时代,很多时候app展示的图片会要求打上水印以强调自己对图片的知识产权.现在道长给大家分享一下给图片打水印的方法.额,这里道长已经写成一个简单的工具类.先把工具类的代码贴上: im ...
- Android 图片处理工具类汇总
很有用的Android图片处理工具,实现各种图片处理效果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...
最新文章
- python编程面向对象很简单,只需要掌握这几点
- 嵌入式linux dhcp移植,嵌入式linux中的dhcp服务器
- IHttpHandler的学习(0)
- (11/24) css进阶:Less文件的打包和分离
- 李善友《认知升级之第一性原理》--507张PPT全解!_搜狐科技_搜狐网
- Python性能优化的20条建议
- linux用户登录实验,实验三 Linux系统登录及用户管理
- 栈的应用--迷宫问题
- 如何成为一名优秀的web前端工程师
- Greeting Card 模拟
- DOM操作与引用资源的前后关系
- 深度学习计算机视觉的简介_商业用途计算机视觉简介
- 海军装备、舰船电子设备|环境可靠性试验|GJB150A\GJB4
- java程序设计精编教程第3版电子版课后答案_java程序设计精编教程第3版答案
- 国内外各大免费收录网站搜索引擎及导航网址提交入口
- 短视频源码开发,短视频系统源码搭建,从短视频系统起播过程入手
- 测试计划与测试方案区别
- 电脑运行MATLAB直接关机,Matlab相关-----matlab跑完程序后自动关机
- linux中bash是什么命令,linux中bash是什么意思?
- 卷积神经网络的训练过程
热门文章
- 搜索引擎排名优化有哪些方法,搜索引擎排名优化技巧
- 毕设分享:基于STM32两轮自平衡小车 含源码、原理图及PCB文件
- java时间格式大全
- 如何使用Xshell连接阿里云服务器
- 《操作系统》2020年期末A卷
- 享学课堂Java开发之Mybatis训练营
- flex布局——最后一行左对齐的实现方式(css功能实现)
- echars 3D地图为区域自定义颜色
- [思想][励志]《真希望我20几岁就知道的事 What I Wish I Knew When I Was 20》 -- 蒂娜·齐莉格(美)...
- 【Image Registration】图像配准综述