Android 图片添加水印图片或者文字
来源:互联网 发布:人的音域 知乎 编辑:程序博客网 时间:2024/05/01 01:06
给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分
添加水印图片:
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 bitmapBitmap newb = Bitmap.createBitmap(w, h, Config.ARGB_8888);// 创建一个新的和SRC长度宽度一样的位图Canvas cv = new Canvas(newb);// draw src intocv.drawBitmap(src, 0, 0, null);// 在 0,0坐标开始画入src// draw watermark intocv.drawBitmap(watermark, 20, 20, null);// 在src的右下角画入水印// save all clipcv.save(Canvas.ALL_SAVE_FLAG);// 保存// storecv.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; }
0 0
- Android 图片添加水印图片或者文字
- ios图片添加文字或者水印
- [iOS]图片添加文字或者水印
- 图片添加水印(小图片或者文字)
- 图片添加文字水印
- Android为图片添加水印文字
- Android获取图片,自动添加文字水印
- IOS 图片水印或者文字
- Java添加水印+图片水印+文字水印
- IOS 绘图实战之“图片添加文字或者水印”
- Java实现 图片水印或者文字水印
- Java实现 图片水印或者文字水印
- 给图片添加文字水印
- java图片添加水印文字
- 图片添加文字水印功能
- 给图片添加文字水印
- Swift 图片添加文字水印
- iOS 图片添加文字水印
- Alex 的 Hadoop 菜鸟教程: 第8课 Hbase 的 java调用方法
- web前端开发规范
- 关于C语言的memset容易出现的问题
- 【将金令】1.12晚评:美国数据引爆多方大举反攻
- python的基本操作(dic)
- Android 图片添加水印图片或者文字
- 成为优秀高级程序员的10个要点
- vs2005里auto_ptr的指针赋值一个陷阱
- Windows/Linux 安装pip
- matlab 学习备忘
- 计算机视觉领域的一些牛人博客,超有实力的研究机构等的网站链接---个人整理
- 为什么js 3>2>1 为false,1<2<3为true?
- Google 重叠实验框架:更多,更好,更快地实验
- 指针基础知识(二)