public static BufferedImage graphicsGenerationlovely(BufferedImage imageQR,  String lovelyNick, int fansCount, String lovelyScore) {
        //整体图的高度和宽度
        int lovelyImageWidth = 400;
        int lovelyImageHeight = 531;
        //整体图合成
        BufferedImage bufferedImage = new BufferedImage(lovelyImageWidth, lovelyImageHeight, BufferedImage.TYPE_INT_RGB);
        //设置图片的背景色
        Graphics2D main = bufferedImage.createGraphics();
        main.fillRect(0, 0, lovelyImageWidth, lovelyImageHeight);
        //宝宝名称整合
        Graphics2D textIntro = bufferedImage.createGraphics();
        textIntro.setColor(new Color(51, 51, 51));
        //设置字体
        Font introFont = new Font("黑体", Font.PLAIN, 30);
        textIntro.setFont(introFont);
        FontMetrics fm = textIntro.getFontMetrics(introFont);
        int nickWidth = fm.stringWidth(lovelyNick);
        //因为名称为不固定,所以设置据左位置
        int nickWidthX = (lovelyImageWidth - nickWidth) / 2 - 10;
        //字体失真处理
        textIntro.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        textIntro.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
        textIntro.drawString(lovelyNick, nickWidthX, 50);
        //宝宝评价和粉丝个数
        Graphics2D textIntro1 = bufferedImage.createGraphics();
        textIntro1.setColor(new Color(153, 153, 153));
        Font intro1Font = new Font("微软雅黑", Font.PLAIN, 26);
        textIntro1.setFont(intro1Font);
        String fansAndScore = "评价:" + lovelyScore + "分 " + " | " + " 粉丝:" + fansCount;
        int infoWidth = fm.stringWidth(fansAndScore);
        int infoWidthX = (lovelyImageWidth - infoWidth) / 2;
        //失真处理
        textIntro1.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        textIntro1.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
        textIntro1.drawString(fansAndScore, infoWidthX, 100);
        //可爱宝宝图
        Graphics graphicsQR = bufferedImage.getGraphics();
        graphicsQR.drawImage(imageQR, 70, 150, 250, 250, null);
        //固定文字
        Graphics2D fixed = bufferedImage.createGraphics();
        fixed.setColor(new Color(51, 51, 51));
        Font fixedFont = new Font("黑体", Font.PLAIN, 26);
        fixed.setFont(fixedFont);
        //失真处理
        fixed.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
        fixed.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_GASP);
        fixed.drawString("可爱点赞奥,哈哈哈", 70, 500);
        return bufferedImage;
public static void main(String[] args) throws IOException {
        //需要添加的图片
        String imageQRUrl = "/Users/huoyajing/Desktop/image1.jpg";
        //保存图片的路径
        String result = "/Users/huoyajing/Desktop/savelovely.png";
        FileInputStream inputStream = new FileInputStream(imageQRUrl);
        BufferedImage imageQR = ImageIO.read(inputStream);
        String lovelyNick = "可爱熊宝宝";
        int fansCount = 10;
        String socre = "4.9";
        BufferedImage bufferedImage = graphicsGenerationlovely(imageQR, lovelyNick, fansCount, socre);
        int temp = result.lastIndexOf(".") + 1;
        ImageIO.write(bufferedImage, result.substring(temp), new File(result));

最终效果图

public static BufferedImage bufferedImageTest1(){
        BufferedImage bufferedImage = new BufferedImage(200, 150, BufferedImage.TYPE_INT_RGB);
        Graphics2D main = bufferedImage.createGraphics();
        //画一条线
        main.drawLine(5,5,5,80);
        main.setColor(Color.CYAN);
        //画一个点
        main.drawLine(100,100,100,100);
        //画线框,矩形或长方形
        main.setColor(Color.BLUE);
        main.drawRect(10,10,10,10);
        //着色快
        main.fillRect(10,25,10,10);
        //圆角矩形
        main.setColor(Color.RED);
        main.drawRoundRect(30,10,20,20,5,5);
        //圆角矩形着色快
        main.fillRoundRect(30,35,20,20,5,5);
        main.setColor(Color.GRAY);
        main.drawRoundRect(60,10,20,20,20,20);
        //圆形着色
        main.fillRoundRect(60,35,20,20,20,20);
        //三维矩形
        main.draw3DRect(90,10,20,20,true);
        //椭圆形
        main.drawOval(90,40,20,30);
        //橡皮擦功能
        main.setColor(Color.GREEN);
        main.fillOval(130,10,30,30);
        main.clearRect(140,20,10,10);
        return bufferedImage;

最终效果图

了解了这些,基本的图形合成功能就够用了。