android 给图片加水印
生成水印照片类
package com.chinawit.cwandroidbase.Infrastructure.CWComponent.CWImage.WaterMark; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Typeface; import android.text.Layout; import android.text.StaticLayout; import android.text.TextPaint; /** * Created by lenovo on 2016/3/15. */ public class WaterMarkUtil {private float imageDrawFormX, imageDrawFormY; private float imageOffsetX,imageOffsetY; private int textColor, textSize; private Context context; public WaterMarkUtil() {imageDrawFormX = 0; imageDrawFormY = 0; imageOffsetX= 0; imageOffsetY= 0; textColor = Color.BLUE; textSize = 15; }public WaterMarkUtil(Context context) {this.context = context; imageDrawFormX = 0; imageDrawFormY = 0; imageOffsetX= 0; imageOffsetY= 0; textColor = Color.BLUE; textSize = 15; }public void setImageDrawXY(float imageDrawFormX, float imageDrawFormY) {this.imageDrawFormX = imageDrawFormX; this.imageDrawFormY = imageDrawFormY; }public void setImageOffsetXY(float imageOffsetX,float imageOffsetY){this.imageOffsetX = imageOffsetX; this.imageOffsetY = imageOffsetY; }public void setTextColor(int textColor) {this.textColor = textColor; }public void setTextSize(int textSize) {this.textSize = textSize; }// add waterMark public Bitmap addWaterMarkByImageAndWord(Bitmap src, Bitmap mark, String title) {if (src == null) {return null; }int srcWidth = src.getWidth(); int srcHeight = src.getHeight(); //create the new blank bitmap Bitmap newbitmap = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(newbitmap); //draw src into canvas.drawBitmap(src, imageDrawFormX, imageDrawFormY, null); Paint paint = new Paint(); if (mark != null) {int markWidth = mark.getWidth(); int markHeight = mark.getHeight(); paint.setAlpha(50); //draw watermark into canvas.drawBitmap(mark,imageOffsetX,imageOffsetY, null); }if (title != null) {String familyName = "宋体"; Typeface font = Typeface.create(familyName, Typeface.BOLD); TextPaint textPaint = new TextPaint(); textPaint.setColor(textColor); textPaint.setTypeface(font); textPaint.setTextSize(textSize); textPaint.setAntiAlias(true); StaticLayout layout = new StaticLayout(title, textPaint, srcWidth, Layout.Alignment.ALIGN_NORMAL, 1.0F, 0.0F, true); layout.draw(canvas); }//save all clip canvas.save(Canvas.ALL_SAVE_FLAG); //store canvas.restore(); return newbitmap; } }
实例使用
package com.chinawit.cwandroidbase.SampleImage; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.os.Bundle; import android.widget.ImageView; import com.chinawit.cwandroidbase.Infrastructure.CWComponent.CWImage.WaterMark.WaterMarkUtil; import com.chinawit.cwandroidbase.R; public class WaterMarkActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_water_mark); Bitmap src = BitmapFactory.decodeResource(getResources(), R.mipmap.main_bg); int w = src.getWidth(); int h = src.getHeight(); float scale = (float) (1000000.0/(w*h)); Matrix matrix = new Matrix(); matrix.setScale(scale, scale); Bitmap src1 = Bitmap.createBitmap(src, 0, 0, src.getWidth(), src.getHeight(), matrix, true); src.recycle(); Bitmap water = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); WaterMarkUtil waterMarkUtil = new WaterMarkUtil(); waterMarkUtil.setTextSize(50); waterMarkUtil.setImageOffsetXY(w/2-water.getWidth(), h/2-water.getHeight()); src1 = waterMarkUtil.addWaterMarkByImageAndWord(src1,water,"Aeric waterMark test"); ImageView imageView = (ImageView)findViewById(R.id.imageView); imageView.setImageBitmap(src1); }}
android 给图片加水印相关推荐
- Android实现图片加水印,视频水印
Android实现图片加水印,视频加水印 推荐经典用例,超级简单的视频加水印,图片加水印功能. 视频加水印: Android拍视频加水印功能 图片加水印 Android轻松实现拍照加水印
- android 照片加水印,Android 实现图片加水印或logo
我们常常会遇到为图像加水印或logo的需求,一般可以通过三方库或者软件实现,但其实加水印非常简单,仅用一个函数即可实现. 实现思路,逐一计算水印和原图重叠部分的像素点的RGBA分量: float pe ...
- android给图片加水印的极简实现方式
工作日志:其实这是两年前就碰到的需求,之前没有整理,也没有继续优化和实现,这次又用到这样的需求,所以记录下来,既是一种代码记录,也是一种复习bitmap和canvas的好手段,这里提供一种思路,就是将 ...
- Android给图片加水印
try { ImageView img=(ImageView) findViewById(R.id.test_img_file); //获取从本地获取的文件路径,用FileInputstream读入文 ...
- golang实现给图片加水印
2019独角兽企业重金招聘Python工程师标准>>> 最近跟在写golang图片加水印的方法,这里用的是一些基本的功能. package mainimport ("fmt ...
- android 加载进度,Android实现图片加载进度提示
本文实例为大家分享了Android实现图片加载进度提示的具体代码,供大家参考,具体内容如下 先上图: 实现原理: 第一个控件的实现原理是重写ImageView的onDraw()方法,利用Canvas的 ...
- php加水印功能,PHP图片加水印功能
本篇文章主要介绍PHP图片加水印功能,感兴趣的朋友参考下,希望对大家有所帮助. 实例代码如下:<?php /** * 功能:给一张图片加上水印效果 * $i 要加水印效果的图片 * $t 水印文 ...
- Java图片处理(二)图片加水印
图片加水印,是通过图片重叠绘制实现的.实现代码如下: public static void press(String pressImg, String pressText, String target ...
- C# 图片加水印例程
using System; using System.IO; using System.Collections; using System.Drawing; using System.Drawing. ...
最新文章
- linux终端历史记录文件夹,如何通过命令行查看`.bash_history`文件?
- MySQL-MMM实现MySQL高可用
- Angular2 从搭建环境到开发
- CloudFoundry cf push命令报错误码223的解决方法
- mysql日期代码_mysql日期查询操作代码
- linux系统之上搭建maven 之nexus服务篇
- android+数据库类型转换,ANDROID数据库错误:不兼容的类型:INT不能转换到CursorFactory...
- 马哥python全栈培训怎么样,你只需要在马哥教育待四个月
- 台式计算机显卡最高温度多少,台式机的正常温度是多少
- 大数据培训课资源调度器详解
- HTTP headers 详解 headers 常用属性
- no tests ran in 0.03 seconds
- android 6.0小游戏,宝宝汽车小游戏
- Nginx优化与防盗链
- 用记事本编写小游戏_一款适合你的记事本——提高你工作的效率!
- 计算机数学与高中数学衔接,高中数学的断层与衔接研究论文
- mysql启动显示系统错误1067_启动MySql时出现1067系统错误 解决方案
- java long 和long_java中Long和long的区别
- Android二手书交易app设计(2)启动图Activity
- JAVA整合阿里云ONS(RocketMQ)