添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
谦虚好学的脸盆  ·  Java8新特性 - ...·  昨天    · 
沉稳的冰棍  ·  C + + calling the ...·  昨天    · 
慷慨的黄豆  ·  100~1000M ...·  2 月前    · 
怕老婆的手套  ·  Revision 5 - History ...·  2 月前    · 
聪明伶俐的馒头  ·  标签:AI - 华为·  4 月前    · 
// 网络图片地址 以下所使用的ImgUtil 是 Hutool 工具 String reportTemplateUrlStr = " https://xxxxxxxxxxxxxx.com/xxxxxxxxxxxxxxxxx.jpg "; URL reportTemplateUrl = new URL(reportTemplateUrlStr); BufferedImage image = ImgUtil.read(reportTemplateUrl); // 模板图片地址 本地图片地址 File file = new File("C:\\Users\\admin\\Desktop\\doctor_card\\card_template.jpg" ); BufferedImage tem = ImgUtil.read(file); // 嵌入图片地址 本地图片地址 File fileInside = new File("C:\\Users\\admin\\Desktop\\doctor_card\\ricky.jpg" ); BufferedImage imgInside = ImgUtil.read(fileInside); // 编辑嵌入图片的尺寸 Image scaledInstance = imgInside.getScaledInstance(26, 26 , Image.SCALE_DEFAULT); // 创建画布 BufferedImage image = new BufferedImage(tem.getWidth(), tem.getHeight(), BufferedImage.TYPE_INT_RGB); // 获取画笔 将 模板图片画上画布 image.getGraphics().drawImage(tem,0,0, null ); // 创建超级画笔 Graphics2D g2d = image.createGraphics(); // 填充内嵌图片 g2d.drawImage(scaledInstance,1446,639, null ); // 创建字体 姓名 Font fontName = new Font("微软雅黑", Font.PLAIN, 50 ); // 创建 颜色 Color colorName = new Color(5,167,179 ); g2d.setFont(fontName); g2d.setColor(colorName); g2d.drawString( "王二麻子",300,370 ); // 抗锯齿 g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, (RenderingHints.VALUE_TEXT_ANTIALIAS_GASP)); // 释放资源 g2d.dispose(); // BufferedImage 转 MultipartFile MultipartFile mfile = null ; try { // BufferedImage 转化为 ByteArrayOutputStream ByteArrayOutputStream out = new ByteArrayOutputStream(); ImageIO.write(image, "jpg" , out); // ByteArrayOutputStream 转化为 byte[] byte [] imageByte = out.toByteArray(); String base = "data:image/png;base64," + Base64.getEncoder().encodeToString(imageByte); mfile = BASE64DecodedMultipartFile.base64ToMultipart(base); } catch (Exception e) { e.printStackTrace(); File toFile = null ; if (mfile!= null && mfile.getSize()>0 ) { // 获取文件原名称 String originalFilename = mfile.getOriginalFilename(); // 获取文件格式 String fileFormat = originalFilename.substring(originalFilename.lastIndexOf("." )); // 转file 生成随机文件名 (File.separator : 作用相当于 '\') String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "" ); toFile = new File("C:\\Users\\admin\\Desktop"+File.separator+uuid+ fileFormat); // 最终绝对路径 String absolutePath = null ; try { // 获取绝对路径 并去除[..]这样的符号,返回的是标准的绝对路径 absolutePath = toFile.getCanonicalPath(); // 判断路径中的文件夹是否存在,如果不存在,则先创建文件夹 String dirPath = absolutePath.substring(0 , absolutePath.lastIndexOf(File.separator)); File dir = new File(dirPath); if (! dir.exists()){ dir.mkdirs(); InputStream ins = mfile.getInputStream(); inputStreamToFile(ins,toFile); ins.close(); } catch (IOException e) { e.printStackTrace(); private static void inputStreamToFile(InputStream ins, File file) { try { OutputStream os = new FileOutputStream(file); int bytesRead = 0 ; byte [] buffer = new byte [8192 ]; while ((bytesRead = ins.read(buffer, 0, 8192)) != -1 ) { os.write(buffer, 0 , bytesRead); os.close(); ins.close(); } catch (Exception e) { e.printStackTrace();