美文网首页移动WEB开发Android canvas
Android 图片添加水印文字

Android 图片添加水印文字

作者: 底层码农 | 来源:发表于2015-06-02 14:46 被阅读687次

    水印文字添加

    http://www.2cto.com/kf/201501/368953.html

    public static Bitmap scaleWithWH(Bitmap src,doublew,doubleh) {

          if(w ==0|| h ==0|| src ==null) {

                 return  src;

           }else{

                 // 记录src的宽高

                 int width = src.getWidth();

                 int height = src.getHeight();

                // 创建一个matrix容器

                Matrix matrix =newMatrix();

               // 计算缩放比例

               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;

    }

    http://www.2cto.com/kf/201501/368953.html

    相关文章

      网友评论

        本文标题:Android 图片添加水印文字

        本文链接:https://www.haomeiwen.com/subject/dmrdqttx.html