Android 图片添加水印图片或者文字

给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分

添加水印图片:

private Bitmap createWaterMaskImage(Context gContext, Bitmap src, Bitmap watermark)
	{

		String tag = "createBitmap";
		Log.d(tag, "create a new bitmap");
		if (src == null)
		{
			return null;
		}
		int w = src.getWidth();
		int h = src.getHeight();
		int ww = watermark.getWidth();
		int wh = watermark.getHeight();
		// create the new blank bitmap
		Bitmap newb = Bitmap.createBitmap(w, h, Config.ARGB_8888);// 创建一个新的和SRC长度宽度一样的位图
		Canvas cv = new Canvas(newb);
		// draw src into
		cv.drawBitmap(src, 0, 0, null);// 在 0,0坐标开始画入src
		// draw watermark into
		cv.drawBitmap(watermark, 20, 20, null);// 在src的右下角画入水印
		// save all clip
		cv.save(Canvas.ALL_SAVE_FLAG);// 保存
		// store
		cv.restore();// 存储
		return newb;
	}

添加文字

  public static Bitmap scaleWithWH(Bitmap src, double w, double h) {
	        if (w == 0 || h == 0 || src == null) {
	            return src;
	        } else {
	            // 记录src的宽高
	            int width = src.getWidth();
	            int height = src.getHeight();
	            // 创建一个matrix容器
	            Matrix matrix = new Matrix();
	            // 计算缩放比例
	            float scaleWidth = (float) (w / width);
	            float scaleHeight = (float) (h / height);
	            // 开始缩放
	            matrix.postScale(scaleWidth, scaleHeight);
	            // 创建缩放后的图片
	            return Bitmap.createBitmap(src, 0, 0, width, height, matrix, true);
	        }
	    }

	public Bitmap drawTextToBitmap(Context gContext,
			  int gResId,
			  String gText) {
			  Resources resources = gContext.getResources();
			  float scale = resources.getDisplayMetrics().density;
			  Bitmap bitmap =
			      BitmapFactory.decodeResource(resources, gResId);  

			  bitmap = scaleWithWH(bitmap, 300*scale, 300*scale);

			  android.graphics.Bitmap.Config bitmapConfig =
			      bitmap.getConfig();  

			  // set default bitmap config if none
			  if(bitmapConfig == null) {
			    bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
			  }
			  // resource bitmaps are imutable,
			  // so we need to convert it to mutable one
			  bitmap = bitmap.copy(bitmapConfig, true);  

			  Canvas canvas = new Canvas(bitmap);
			  // new antialised Paint
			  Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
			  // text color - #3D3D3D
			  paint.setColor(Color.RED);
			  paint.setTextSize((int) (18 * scale));
		       paint.setDither(true); //获取跟清晰的图像采样
		       paint.setFilterBitmap(true);//过滤一些
			  Rect bounds = new Rect();
			  paint.getTextBounds(gText, 0, gText.length(), bounds);
			  int x = 30;
			  int y = 30;
			  canvas.drawText(gText, x * scale, y * scale, paint);
			  return bitmap;
			} 
时间: 2024-10-12 09:29:28

Android 图片添加水印图片或者文字的相关文章

海报工厂之(一)android 如何给图片添加水印和文字

在Android中如何给图片添加水印,下面截取了部分核心代码,仅供参考: /**      * 获取图片缩小的图片      * @param src      * @return      */     public static Bitmap scaleBitmap(String src)     {         //获取图片的高和宽         BitmapFactory.Options options = new BitmapFactory.Options();        

IOS 给图片添加水印(文字)

有时候上传图片要加唯一标识,简单的就是添加一个水印.这里水印我们讲文字,可以是当前系统时间.坐标.地理位置等 原理就是把一个字符串写到图片上,并且字(font)的大小由图片大小控制. 以下是封装好的一个类方法: //NavView.m + (UIImage *) addText:(UIImage *)img text:(NSString *)mark { int w = img.size.width; int h = img.size.height; UIGraphicsBeginImageCo

Android APP 分享图片文字到微信刚开始正常,后面就不弹出分享框了

按照官方的流程走了一遍,一切顺利,分享成功了,本来以为可以大功告成了,结果睡了一觉,第二天要给客户演示了,才发现TMD坑爹了,不能分享了,第三方的分享栏弹不出来了,我一阵惊慌,还好很快找到了解决办法:原因是我进行了代码混淆,但是没有对新添加的这部分分享到微信的代码进行处理,所以...解决问题的办法很简单:需要在混淆配置文件proguard.cfg中,增加如下两行代码: -keep class com.tencent.mm.sdk.openapi.WXMediaMessage { *;} -kee

Android TextView中有图片有文字混合排列

1.使用html.fromHtml 2.新建ImageGetter 3.使用<img src>标签 demo: 1.设置文字 ((TextView) findViewById(R.id.tv_gradlist_calorie_desc)).setText(Html .fromHtml(descString(), getImageGetterInstance(), null)); 2.获取文字 /** * 字符串 * * @return */ private String descString(

【Android】在图片上添加文字

[Android]在图片上添加文字 在Edittext中插入图片 下载地址:http://www.devstore.cn/code/info/604.html

Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等

仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 微信 下载地址 : 微信上传图片源码 很多网友不知道怎么获取图片路径,这里贴出来: String path = Bimp.tempSelectBitmap.get(position).getImagePath(); //部分代码如下 [java] view plain copy package co

iOS边练边学--(Quartz2D)图片添加水印

一.给图片添加水印的基本步骤 加载图片 手动创建位图上下文 绘制原生的图片 给原生的图片添加文字 生成一张图片给我们,从上下文中获取图片 关闭上下文 二.注意:位图上下文的获取方式跟layer上下文不一样.位图上下文需要我们手动创建 三.效果图

百度编辑器ueditor给上传的图片添加水印

百度编辑器本身是没有为上传图片添加水印的功能,想要在上传的时候添加图片水印,也很简单.以 ueditor 1.2.6 为例,打开php目录下面的imageUp.php文件,查找"$info = $up->getFileInfo();",在这句代码的下面加入以下代码: /* 添加水印 start */ $water_img = "watermark.png"; //水印文件(替这里换成你要的水印) $img_min_w = 350; //添加水印需要图片最小达到

Android 9 patch 图片 (.9.png 格式图片) 的特点和制作(转)

本文围绕 .9.png 格式图片讨论以下两个话题: 1. 该格式图片的特点 2. 制作方式 一 .9.png 格式的文件的特点 与传统的png 格式图片相比, 9.png 格式图片在图片四周有一圈一个像素点组成的边沿,该边沿用于对图片的可扩展区和内容显示区进行定义. 这种格式的图片在android 环境下具有自适应调节大小的能力. (1)允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更大区域时,可扩展区的内容被延展. (2)允许开发人员定义内容显示区,用于显示文字或其他内容 如下图所