java代码绘制生成图片(用于多张图片合成)

复制代码
package com.test;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;


public class ImageService {

    public String background_img;

    public String qrcode_img;

    public String gzh_img;
    
    public String outputdir;
    
    
    public File createImage(String name) {
        return overlapImage(background_img, gzh_img,qrcode_img, name, outputdir);
    }
    
    public File overlapImage(String backgroundPath, String gzhPath, String qrCodePath, String text, String outPutPath) {
        try {
            // 设置图片大小
             //设置图片大小
            BufferedImage background = resizeImage(848,1018, ImageIO.read(new File(backgroundPath)));
            BufferedImage qrCode = resizeImage(80,80,ImageIO.read(new File(qrCodePath)));
            BufferedImage gzh = resizeImage(80,80,ImageIO.read(new File(gzhPath)));
            Graphics2D g = background.createGraphics();
            g.setColor(Color.black);
            g.setFont(new Font("微软雅黑",Font.PLAIN,40));
            g.drawString(text,436 ,630);
            //在背景图片上添加二维码图片
            g.drawImage(qrCode, 760, 920, qrCode.getWidth(), qrCode.getHeight(), null);
            g.drawImage(gzh, 660, 920, gzh.getWidth(), gzh.getHeight(), null);
            g.dispose();
            File out = new File(outPutPath + System.currentTimeMillis()+".jpg");
            ImageIO.write(background, "jpg", out);
            return out;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static BufferedImage resizeImage(int x, int y, BufferedImage bfi) {
        BufferedImage bufferedImage = new BufferedImage(x, y, BufferedImage.TYPE_INT_RGB);
        bufferedImage.getGraphics().drawImage(bfi.getScaledInstance(x, y, Image.SCALE_SMOOTH), 0, 0, null);
        return bufferedImage;
    }

}
复制代码

 

posted @   凉城  阅读(7109)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2019-07-02 用FFmpeg+nginx+rtmp搭建环境实现推流
点击右上角即可分享
微信分享提示