最近做了一个图片添加水印的功能:传入的参数为:原图的bitmap,水印的字符串,以及context。
原图的bitmap可以先取得图片的文件输入流fis,之后通过 Bitmap bm = BitmapFactory.decodeStream(fis, null, opt); 方法来取得。
添加水印的方法如下:
public Bitmap addWaterMark(Bitmap src, String water, Context context){
Bitmap tarBitmap = src.copy(Config.ARGB_8888, true);
int w = tarBitmap.getWidth();
int h = tarBitmap.getHeight();
Canvas canvas = new Canvas(tarBitmap);
//启用抗锯齿和使用设备的文本字距
Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG);
//字体的相关设置
textPaint.setTextSize(100.0f);//字体大小
textPaint.setTypeface(Typeface.DEFAULT_BOLD);
textPaint.setColor(Color.YELLOW);
textPaint.setShadowLayer(3f, 1, 1,context.getResources().getColor(android.R.color.background_dark));
//图片上添加水印的位置,这里设置的是中下部3/4处
canvas.drawText(water, w/2-50, (float) (h*0.75), textPaint);
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
return tarBitmap;
}