首页 > 编程开发 > Android教程 > 正文

android图片加水印,文字

互联网 2020-02-11 20:18:43 0

android图片加水印,文字

两种方法: 1.直接在图片上写文字           String str = "PICC要写的文字";        ImageView image = (ImageView) this.findViewById(R.id.ImageView);        Bitmap photo = BitmapFactory.decodeResource(this.getResources(), R.drawable.text);        int width = photo.getWidth(), hight = photo.getHeight();        System.out.println("宽"+width+"高"+hight);        icon = Bitmap.createBitmap(width, hight, Bitmap.Config.ARGB_8888); //建立一个空的BItMap         Canvas canvas = new Canvas(icon);//初始化画布绘制的图像到icon上                 Paint photoPaint = new Paint(); //建立画笔         photoPaint.setDither(true); //获取跟清晰的图像采样         photoPaint.setFilterBitmap(true);//过滤一些                 Rect src = new Rect(0, 0, photo.getWidth(), photo.getHeight());//创建一个指定的新矩形的坐标         Rect dst = new Rect(0, 0, width, hight);//创建一个指定的新矩形的坐标         canvas.drawBitmap(photo, src, dst, photoPaint);//将photo 缩放或则扩大到 dst使用的填充区photoPaint                 Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);//设置画笔         textPaint.setTextSize(20.0f);//字体大小         textPaint.setTypeface(Typeface.DEFAULT_BOLD);//采用默认的宽度         textPaint.setColor(Color.RED);//采用的颜色         //textPaint.setShadowLayer(3f, 1, 1,this.getResources().getColor(android.R.color.background_dark));//影音的设置         canvas.drawText(str, 20, 26, textPaint);//绘制上去字,开始未知x,y采用那只笔绘制        canvas.save(Canvas.ALL_SAVE_FLAG);        canvas.restore();        image.setImageBitmap(icon);        saveMyBitmap(icon);   2.将两个图片合成       onCreat方法里面{          Bitmap mark = BitmapFactory.decodeResource(this.getResources(), R.drawable.icon);             Bitmap photo = BitmapFactory.decodeResource(this.getResources(), R.drawable.text);         Bitmap a = createBitmap(photo,mark);             image.setImageBitmap(a);             saveMyBitmap(a);        }             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;     }   //保存图片到data下面         public void saveMyBitmap(Bitmap bmp){      FileOutputStream fos = null;         try {             fos = openFileOutput("image1.jpg", Context.MODE_PRIVATE);             bmp.compress(Bitmap.CompressFormat.JPEG, 100, fos);         } catch (FileNotFoundException e) {         } finally {             if (fos != null) {                 try {                     fos.flush();                     fos.close();                 } catch (IOException e) {                 }             }         }     }

  • 相关标签:android图片加水印 文字
  • 版权归原作者所有,如果有侵犯到您的权益,请联系本站删除!
  • 相关文章


    专题推荐

    今日头条
  • 荣耀20青春版发布会开始时间  荣耀20青春版什么时候发布 荣耀20青春版发布会开始时间 荣耀20青春版什么时候发布
  • 荣耀20青春版直播地址  荣耀20青春版解锁你的美新品发布会直播网址 荣耀20青春版直播地址 荣耀20青春版解锁你的美新品发布会直播网址
  • 手机哪款好?8月值得买的手机就这四款 手机哪款好?8月值得买的手机就这四款
  • 七夕保命技能书送上 女朋友还有30秒到达战场 七夕保命技能书送上 女朋友还有30秒到达战场
  • 热门标签