File fImage = new File("/sdcard/dcim","beijing.jpeg");FileOutputStream iStream = new FileOutputStream(fImage); * 取出Bitmap oriBmporiBmp.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

原文地址,http://www.devdiv.com/home.php?mod=space&uid=19970&do=blog&id=3868

//根据我自己的需要改进了一下

    //获取图片缩小的图片    public static Bitmap scaleBitmap(String src,int max)    {        //获取图片的高和宽        BitmapFactory.Options options = new BitmapFactory.Options();        //这一个设置使 BitmapFactory.decodeFile获得的图片是空的,但是会将图片信息写到options中        options.inJustDecodeBounds = true;                BitmapFactory.decodeFile(src, options);        // 计算比例 为了提高精度,本来是要640 这里缩为64        max=max/10;        int be = options.outWidth / max;         if(be%10 !=0)          be+=10;         be=be/10;         if (be <= 0)          be = 1;        options.inSampleSize = be;        //设置可以获取数据        options.inJustDecodeBounds = false;        //获取图片        return BitmapFactory.decodeFile(src, options);            }    // 加水印 也可以加文字    public static Bitmap watermarkBitmap(Bitmap src, Bitmap watermark,            String title) {        if (src == null) {            return null;        }        int w = src.getWidth();        int h = src.getHeight();         //需要处理图片太大造成的内存超过的问题,这里我的图片很小所以不写相应代码了                Bitmap newb= Bitmap.createBitmap(w, h, Config.ARGB_8888);// 创建一个新的和SRC长度宽度一样的位图        Canvas cv = new Canvas(newb);        cv.drawBitmap(src, 0, 0, null);// 在 0,0坐标开始画入src            Paint paint=new Paint();        //加入图片        if (watermark != null) {            int ww = watermark.getWidth();            int wh = watermark.getHeight();            paint.setAlpha(50);            cv.drawBitmap(watermark, w - ww + 5, h - wh + 5, paint);// 在src的右下角画入水印                    }        //加入文字        if(title!=null)        {            String familyName ="宋体";            Typeface font = Typeface.create(familyName,Typeface.BOLD);                        TextPaint textPaint=new TextPaint();            textPaint.setColor(Color.RED);            textPaint.setTypeface(font);            textPaint.setTextSize(22);            //这里是自动换行的            StaticLayout layout = new StaticLayout(title,textPaint,w,Alignment.ALIGN_NORMAL,1.0F,0.0F,true);            layout.draw(cv);            //文字就加左上角算了            //cv.drawText(title,0,40,paint);         }        cv.save(Canvas.ALL_SAVE_FLAG);// 保存        cv.restore();// 存储        return newb;    }

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  3. Android(安卓)matrix 控制图片的旋转、缩放、移动
  4. android 获取唯一标识
  5. android拍照与读取相册
  6. Android(安卓)报错:Caused by: android.os.FileUriExposedExcepti
  7. Android(安卓)热点开关状态的判断和获取热点ssid
  8. Android软键盘适配问题
  9. AIR Native Extension的使用(Android)一 : 打包ane

随机推荐

  1. Android的两种拍照方法
  2. Android快速开源框架--afinal
  3. android 控件布局(顶部、底部......) 留
  4. Android(安卓)USB通信-实现lsusb
  5. Android之TextView属性列表
  6. Android(安卓)滚动条
  7. Android(安卓)为 Android(安卓)开发访问
  8. 获取 Android(安卓)4.2 的 ROOT 权限(越狱
  9. Android(安卓)WebView 用法
  10. 分享两本android电子书