android 实现图片加水印

来源:互联网 发布:哪种编程语言最容易学 编辑:程序博客网 时间:2024/05/22 09:48
File fImage = new File("/sdcard/dcim","beijing.jpeg");


FileOutputStream iStream = new FileOutputStream(fImage); 


* 取出Bitmap oriBmp


oriBmp.compress(CompressFormat.JPEG, 100, iStream);




int w = 320,h = 240;
String mstrTitle = “感受Android带给我们的新体验”;
Bitmap mbmpTest = Bitmap.createBitmap(w,h, Config.ARGB_8888);
Canvas canvasTemp = new Canvas(mbmpTest);
canvasTemp.drawColor(Color.WHITE);
Paint p = new Paint();
String familyName = “宋体”;
Typeface font = Typeface.create(familyName,Typeface.BOLD);
p.setColor(Color.RED);
p.setTypeface(font);
p.setTextSize(22);
canvasTemp.drawText(mstrTitle,0,100,p);


6.图片水印的生成方法


  生成水印的过程。其实分为三个环节:第一,载入原始图片;第二,载入水印图片;第三,保存新的图片。


  /**


  * create the bitmap from a byte array


  *


  * @param src the bitmap object you want proecss


  * @param watermark the water mark above the src


  * @return return a bitmap object ,if paramter's length is 0,return null


  */


  private Bitmap createBitmap( 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, w - ww + 5, h - wh + 5, null );//在src的右下角画入水印


  //save all clip


  cv.save( Canvas.ALL_SAVE_FLAG );//保存


  //store


 cv.restore();//存储


  return newb;


  }








转自:http://blog.csdn.net/hachirou/archive/2010/04/11/5473312.aspx
0 0