Android给图片增加文字或图标水印源代码下载
程序员文章站
2021-12-27 18:51:46
...
本Demo是一个基于安卓的直接给图片添加小图片水印和给图片添加文字水印的小例子源码、如果是PNG图片则可以直接透明的绘制到底图上、比如例子中使用圣诞贺卡图标作为水印直接绘制在一个扑克牌图片上面、使用dwtedx文字做为水印直接绘制在一个扑克牌图片上面、其他图片格式没有测试、项目比较简单、代码量比较少、很好看懂的、效果图如下
图标水印方式 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
上一篇: 5个要点告诉你设计与开发如何协作?