安卓android添加文本到图片并保持到本地
来源:互联网 发布:unity3d 太空场景 编辑:程序博客网 时间:2024/06/06 17:25
先看效果图,图片大了一点。
原理很简单,就是从本地读取图片,获取Bitmap,绘制矩形和文本后,在保存到本地。刚接手这个功能的时候,感觉很难搞,其实还好吧,也被坑了一个多小时,闲话少说,上代码。
代码:
/** * 添加文本到图片 */ private void addTextToJpg() { //从文件中获取bitmap Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/fengjing.jpg"); ivSrc = (ImageView) findViewById(R.id.iv_src); Bitmap bit = drawTextToBitmap(bitmap, "你好"); //展示到页面 ivSrc.setImageBitmap(bit); //保存到本地文件 saveBitmapToSDCard(bit, "/sdcard/temp/result.jpg"); }/** * 添加文本到图片的方法 * @param bitmap * @param gText * @return */ public Bitmap drawTextToBitmap(Bitmap bitmap, String gText) { android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig(); if (bitmapConfig == null) { bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888; } bitmap = bitmap.copy(bitmapConfig, true); Canvas canvas = new Canvas(bitmap); Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); //绘制矩形,左,上,右,下,左上角距离,214*80 //注意,原图是800*600,要求矩形214*80,矩形在图片中水平居中,底部距离5像素,所有矩形的左,上,右,下,计算得出下面的数字 //这里可以抽出去的,根据原图大小和矩形大小位置来自动生成,时间关系不再做了 Rect targetRect = new Rect(293, 515, 507, 595); // 绘制矩形区域-实心矩形 paint.setColor(Color.parseColor("#ffffff")); // 设置样式-填充 paint.setStyle(Paint.Style.FILL); canvas.drawRect(targetRect, paint); //绘制文本 paint.setStrokeWidth(3);//文本的粗细 paint.setTextSize(70);//文本大小 paint.setColor(Color.BLACK);//文本颜色 Paint.FontMetricsInt fontMetrics = paint.getFontMetricsInt(); //设置文本对其基线 int baseline = (targetRect.bottom + targetRect.top - fontMetrics.bottom - fontMetrics.top) / 2; // 下面这行是实现水平居中,drawText对应改为传入targetRect.centerX() paint.setTextAlign(Paint.Align.CENTER); canvas.drawText(gText, targetRect.centerX(), baseline, paint);//居中对其到矩形中 return bitmap; }/** * 将bitmap存在SDCard中 * * @param fingerprint_bitmap * @return 返回所存路径 */ public static void saveBitmapToSDCard(Bitmap fingerprint_bitmap, String filePath) { FileOutputStream fos = null; try { fos = new FileOutputStream(filePath); if (fos != null) { fingerprint_bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); } fos.flush(); fos.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
阅读全文
0 0
- 安卓android添加文本到图片并保持到本地
- android调用系统照相机并保持图片到本地
- Android画图并保存图片到本地
- android 下载图片到本地并显示
- 安卓开发截取当前屏幕图片及截取整个ListView图片并保存到本地
- 安卓实现从互联网上获取图片并保存到本地目录中
- 安卓项目SimpleQQ——拍照并保存图片到本地
- 安卓开发关于图片保存到本地相册并显示功能
- Android安卓根据地址下载文件并保存到本地(HttpDownload)
- 安卓调用系统摄像头拍照并保存到本地
- android添加图片到本地,无法即使刷新的解决方法
- android添加图片到本地,无法即使刷新的解决方法
- android之图片异步加载并缓存到本地
- android之图片异步加载并缓存到本地
- Android 异步获取图片并缓存到本地
- android异步加载图片并缓存到本地实现方法
- android 选择本地图片上传到服务端并保存
- Android ListView 异步加载图片并缓存到本地
- 库柏裕华SDK获取视频
- 更好
- Gradle2.0用户指南翻译——第一章. 介绍
- 语音增强-自适应回声消除
- idea配置maven
- 安卓android添加文本到图片并保持到本地
- 树及其存储结构
- 创建/删除 表空间/用户
- JavaWeb项目中 .classpath、.mymetadata、.project文件的作用
- ip转发
- 基于spring、mybatis的图书管理系统
- 我的Robocon
- caffe基础-07Reshape层的配置
- JS错误与调试4