图片水印--小记
图片加旋转水印---水印居中位置计算
简单说下遇到的需求:一个居中的大水印,图片大小和水印字数不固定。。。
1.居中x,y点的求值
// 计算文字宽高度
FontDesignMetrics metrics = FontDesignMetrics.getMetrics(font);
// 文字宽度
int textWidth = metrics.stringWidth(content);
// 文字高度
int textHeight = metrics.getHeight();
// 计算文字坐标
int x = (width - textWidth) / 2;
//如果超出图片宽度
while ((textWidth+x)>width){
x = x / 2;
}
//水印竖直高度(我是30度的旋转)
int y_textHeigh = (int) (textWidth * Math.cos(Math.toRadians(60.0)));
int y = (height + y_textHeigh) / 2;
g.drawString(content, x, y);
g.dispose();
2.字体大小
//文字超过十个缩小字体大小
int textLength = waterMarkText.length();
//15 像素为换算一点字体大小
float szie = 15.0F;
if (textLength>10){
szie = (textLength-10)+15.0f;
}
int fontSize =(int) (width / szie);