欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android给图片增加文字或图标水印源代码下载

程序员文章站 2021-12-27 18:51:46
...

本Demo是一个基于安卓的直接给图片添加小图片水印和给图片添加文字水印的小例子源码、如果是PNG图片则可以直接透明的绘制到底图上、比如例子中使用圣诞贺卡图标作为水印直接绘制在一个扑克牌图片上面、使用dwtedx文字做为水印直接绘制在一个扑克牌图片上面、其他图片格式没有测试、项目比较简单、代码量比较少、很好看懂的、效果图如下

Android给图片增加文字或图标水印源代码下载


图标水印方式 createBitmap() 代码

private Bitmap createBitmap(Bitmap photo, Bitmap watermark,int mark_x,int mark_y){ 
    //左上角 mark_x = 0;mark_y=0;
    //右上角 mark_x = photo.getWidth() - watermark.getWidth();mark_y=0;
    //左下角 mark_x = 0;mark_y=photo.getHeight() - watermark.getHeight();
    /*左上角 mark_x = photo.getWidth() - watermark.getWidth();
    /mark_y = photo.getHeight() - watermark.getHeight();*/
    
    String tag = "createBitmap";
    // Log.d( tag, "create a new bitmap" );
    if (photo == null) {
        return null;
    }
    int photoWidth = photo.getWidth();
    int photoHeight = photo.getHeight();
    int markWidth = watermark.getWidth();
    int markHeight = watermark.getHeight();

    // create the new blank bitmap
    Bitmap newb = Bitmap.createBitmap(photoWidth, photoHeight, Config.ARGB_8888);
    // 创建一个新的和SRC长度宽度一样的位图
    Canvas cv = new Canvas(newb);
    
    // draw src into
    // 在 0,0坐标开始画入src
    cv.drawBitmap(photo, 10,10, null);
    // draw watermark into
    // 在src的右下角画入水印
    cv.drawBitmap(watermark,  mark_x , mark_y , null);
    // save all clip
    cv.save(Canvas.ALL_SAVE_FLAG);// 保存
    // store
    cv.restore();// 存储
    return newb; 
}


文字水印方式 createBitmap() 代码

private Bitmap createBitmap(Bitmap photo, String str,int mark_x,int mark_y){
    int width = photo.getWidth(), hight = photo.getHeight();
    System.out.println("宽" width "高" hight);
    //建立一个空的BItMap  
    Bitmap icon = Bitmap.createBitmap(width, hight, Bitmap.Config.ARGB_8888); 
    //初始化画布绘制的图像到icon上  
    Canvas canvas = new Canvas(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);
    //将photo 缩放或则扩大到 dst使用的填充区photoPaint  
    canvas.drawBitmap(photo, src, 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));
    //绘制上去字,开始未知x,y采用那只笔绘制 
    canvas.drawText(str, mark_x, mark_y, textPaint);
    canvas.save(Canvas.ALL_SAVE_FLAG); 
    canvas.restore(); 
    return icon;
}


最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看

源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1nt5pVnz 密码: 26ey