1 文本操作
1.1 渲染文本
/**
* 渲染文字
*@Author dong
*@Date 2022/6/2 16:49
*@param color 文字颜色
*@param fontName 字体名称
*@param text 文本内容
*@param fontSize 文字大小
*@param x x轴点位
*@param y y轴点位
*@param g 画布
*@return
*/
public void loadTxt(String color, String fontName, String text, int fontSize,int x, int y, Graphics2D g)throws IOException{
Font font = new Font(fontName, Font.PLAIN, fontSize);
g.setFont(font);
g.setPaint(Color.decode(color));
g.drawString(text, x, y);
}
1.2 获取文本渲染之后的长度
/**
*
*@Author dong
*@Date 2022/6/2 16:54
*@param text 文本
*@param g 获取文本在画布上的长度
*@return
*/
private int loadTxt(String text,Graphics2D g){
return g.getFontMetrics().stringWidth(text);
}
2 图片操作
2.1 渲染图片
/**
*
*@Author dong
*@Date 2022/6/2 16:53
*@param url 图片路径
*@param width 图片宽度
*@param height 图片高度
*@param x x轴点位
*@param y y轴点位
*@param g 画布
*@return
*/
public void loadImg(String url, int width, int height, int x, int y, Graphics2D g) throws IOException {
// 网络图片获取方式。如果是本地图片可以使用 ImageIO.read(new File(key))
BufferedImage erweima = ImageIO.read(new URL(url));
g.drawImage(erweima, x, y, width, height, null);
}
2.2 图片处理为圆角
/**
*
*@Author dong
*@Date 2022/6/2 16:55
*@param img 原图对象
*@param radius 弧度大小,720为原型图片
*@return
*/
public BufferedImage setClip(BufferedImage img,int radius){
int width = img.getWidth();
int height = img.getHeight();
BufferedImage res = new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);
Graphics2D gs = res.createGraphics();
gs.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
gs.fillRoundRect(0, 0,width, height, radius, radius);
gs.setComposite(AlphaComposite.SrcIn);
gs.drawImage(img,0,0,null);
gs.dispose();
return res;
}