水印文字添加
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;
}
网友评论