引用:http://blog.csdn.net/cq361106306/article/details/8142526

  1. 两种方法:
  2. 1.直接在图片上写文字
  3. String str = "PICC要写的文字";
  4. ImageView image = (ImageView) this.findViewById(R.id.ImageView);
  5. Bitmap photo = BitmapFactory.decodeResource(this.getResources(), R.drawable.text);
  6. int width = photo.getWidth(), hight = photo.getHeight();
  7. System.out.println("宽"+width+"高"+hight);
  8. icon = Bitmap.createBitmap(width, hight, Bitmap.Config.ARGB_8888); //建立一个空的BItMap
  9. Canvas canvas = new Canvas(icon);//初始化画布绘制的图像到icon上
  10. Paint photoPaint = new Paint(); //建立画笔
  11. photoPaint.setDither(true); //获取跟清晰的图像采样
  12. photoPaint.setFilterBitmap(true);//过滤一些
  13. Rect src = new Rect(0, 0, photo.getWidth(), photo.getHeight());//创建一个指定的新矩形的坐标
  14. Rect dst = new Rect(0, 0, width, hight);//创建一个指定的新矩形的坐标
  15. canvas.drawBitmap(photo, src, dst, photoPaint);//将photo 缩放或则扩大到 dst使用的填充区photoPaint
  16. Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);//设置画笔
  17. textPaint.setTextSize(20.0f);//字体大小
  18. textPaint.setTypeface(Typeface.DEFAULT_BOLD);//采用默认的宽度
  19. textPaint.setColor(Color.RED);//采用的颜色
  20. //textPaint.setShadowLayer(3f, 1, 1,this.getResources().getColor(android.R.color.background_dark));//影音的设置
  21. canvas.drawText(str, 20, 26, textPaint);//绘制上去字,开始未知x,y采用那只笔绘制
  22. canvas.save(Canvas.ALL_SAVE_FLAG);
  23. canvas.restore();
  24. image.setImageBitmap(icon);
  25. saveMyBitmap(icon);
  26. 2.将两个图片合成
  27. onCreat方法里面{
  28. Bitmap mark = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon);
  29. Bitmap photo = BitmapFactory.decodeResource(this.getResources(), R.drawable.text);
  30. Bitmap a = createBitmap(photo,mark);
  31. image.setImageBitmap(a);
  32. saveMyBitmap(a);
  33. }
  34. private Bitmap createBitmap( Bitmap src, Bitmap watermark )
  35. {
  36. String tag = "createBitmap";
  37. // Log.d( tag, "create a new bitmap" );
  38. if( src == null )
  39. {
  40. return null;
  41. }
  42. int w = src.getWidth();
  43. int h = src.getHeight();
  44. int ww = watermark.getWidth();
  45. int wh = watermark.getHeight();
  46. //create the new blank bitmap
  47. Bitmap newb = Bitmap.createBitmap( w, h, Config.ARGB_8888 );
  48. //创建一个新的和SRC长度宽度一样的位图
  49. Canvas cv = new Canvas( newb );
  50. //draw src into
  51. cv.drawBitmap( src, 0, 0, null );//在 0,0坐标开始画入src
  52. //draw watermark into
  53. cv.drawBitmap( watermark, w - ww + 5, h - wh + 5, null );//在src的右下角画入水印
  54. //save all clip
  55. cv.save( Canvas.ALL_SAVE_FLAG );//保存
  56. //store
  57. cv.restore();//存储
  58. return newb;
  59. }
  60. //保存图片到data下面
  61. public void saveMyBitmap(Bitmap bmp){
  62. FileOutputStream fos = null;
  63. try {
  64. fos = openFileOutput("image1.jpg", Context.MODE_PRIVATE);
  65. bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);
  66. } catch (FileNotFoundException e) {
  67. } finally {
  68. if (fos != null) {
  69. try {
  70. fos.flush();
  71. fos.close();
  72. } catch (IOException e) {
  73. }
  74. }
  75. }
  76. }

android 文字图片合成的更多相关文章

  1. 移动端canvas文字图片合成并生成图片(canvas宽度自适应移动端屏幕)

    这是我之前做的一个关于文字图片合成的代码,供大家参考,不足支出还望体谅:具体的注释在代码里都有,有什么不懂了可以留言互相交流.<!DOCTYPE html> <html lang=& ...

  2. android开发 图片合成

    private static Bitmap compositeImages(Bitmap srcBitmap,Bitmap dstBitmap){ Bitmap bmp = null; //下面这个B ...

  3. php 图片添加文字水印 以及 图片合成(微信快码传播)

    1.图片添加文字水印: $bigImgPath = 'backgroud.png'; $img = imagecreatefromstring(file_get_contents($bigImgPat ...

  4. Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现

    Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现 暂时还未有时间开发这效果,所以先贴出来. 先贴一张效果图,这是一张手机截屏: 左上方的风景图:背景图片 右上方的人物图:前景图 ...

  5. iOS 图片水印、图片合成文字或图片实现

    这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载 ...

  6. php 图片合成时文字颜色丢失

    最近在做图片合成的时候无意间发现文字颜色丢失了,仔细找了以后才发现原来是因为图片格式的原因 当图片是png图片时文字的颜色就变成了白色的,So.........去你妹的png,用jpg吧! $dest ...

  7. CxImage透明图片合成和文字叠加

    1         CxImage的作用 CxImage将几张图片合成一张图片,在一张底图上添加图片,有些图片是有透明效果的,实现图片之间的透明重叠效果.另外还可以添加文字. (1)背景图片mymix ...

  8. Android -- 图片处理, 画画板,缩放,旋转,平移,镜面,倒影,图片合成,颜色处理

    1. 画画板 示例代码 public class MainActivity extends Activity { private ImageView iv; private Bitmap baseBi ...

  9. PHP图片加水印文字及图片合成缩放

    <?php //图片添加文字水印 /*$bigImgPath = 'background.png'; $img = imagecreatefromstring(file_get_contents ...

随机推荐

  1. RabbitMQ三种Exchange

    Direct Exchange – 处理路由键.需要将一个队列绑定到交换机上,要求该消息与一个特定的路由键完全匹配.这是一个完整的匹配.如果一个队列绑定到该交换机上要求路由键 “dog”,则只有被标记 ...

  2. iBatis in 语句参数传入方法

    刚刚开始在工作中用到iBatis 在用到in去查询或者删除 我本来是传递一个String的参数,但是总是报以下的错误

  3. jquery_插件

    编写插件的目的:给已有的一些列方法或函数做一个封装 jquery插件推荐命名方式 :jquery.[插件名].js  防止与插件库混淆 所有对象方法都应当附加到jquery.fn 对象上,所有的全局函 ...

  4. Rails problem

    总是wa~ #include <stdio.h> int main() { ]; ], b[]; while(scanf("%d %s %s", &n, a, ...

  5. C#网络编程之--TCP协议(一)

    TCP 是面向连接的传输协议 面向连接,其实就好比,A打电话给B,如果B接听了,那么A和B之间就的通话,就是面向连接的 TCP 是全双工的传输协议 全双工,这个理解起来也很简单,A打电话给B,B接听电 ...

  6. json.parse 与 json.stringfy

    转自 :http://blog.csdn.net/wangxiaohu__/article/details/7254598 parse用于从一个字符串中解析出json对象,如 var str = '{ ...

  7. C 到C++的升级

    C++所有的变量都可以在需要使用时再定义. C语言中的变量都必须在作用域开始的位置定义. register 关键字请求编译器将局部变量存储于寄存器中 在C语言无法获取register 变量的地址 在C ...

  8. MVC Pager 使用

    MVC Pager  4.0+     3.0版本使用  ,直接来点使用的.一看就明白 @Ajax.Pager(Model,pagerOptions,mvcAjaxOptions); @using W ...

  9. nginx编译安装

    Nginx编译安装 1.nginx官网:http://wiki.nginx.org/Install下载:http://nginx.org/en/download.html 2.编译安装# wget h ...

  10. 孟加拉央行SWIFT攻击事件恶意木马分析(转)

    第一章 分析概述 该恶意木马样本为运行于winodws平台上的PE文件(名称:evtdiag.exe).文件大小为64KB,编译时间是2016年2月5日. 经分析,该样本为定制的攻击SWIFT客户端程 ...