最近项目有个功能是生成海报

一个背景图片,一个二维码图片

将两个图片合并成一个图片。

写了一个工具类,需要的朋友自取。

 1 @Component
2 public class PictureUtil {
3 /**
4 * @param file1Src 在线图片地址1
5 * @param file2Src 在线图片地址2
6 * @param response
7 * @param x
8 * @param y
9 */
10 public void composePic(String file1Src, String file2Src, Integer x, Integer y, HttpServletResponse response) {
11 try {
12 java.net.URL url = new java.net.URL(file1Src);
13 URLConnection conn = url.openConnection();
14 InputStream bgFile = conn.getInputStream();
15 Image bgSrc = javax.imageio.ImageIO.read(bgFile);
16
17 url = new java.net.URL(file2Src);
18 conn = url.openConnection();
19 InputStream logoFile = conn.getInputStream();
20 Image logoSrc = javax.imageio.ImageIO.read(logoFile);
21
22 int bgWidth = bgSrc.getWidth(null);
23 int bgHeight = bgSrc.getHeight(null);
24 int logoWidth = logoSrc.getWidth(null);
25 int logoHeight = logoSrc.getHeight(null);
26
27 BufferedImage tag = new BufferedImage(bgWidth, bgHeight, BufferedImage.TYPE_INT_RGB);
28
29 Graphics2D g2d = tag.createGraphics();
30 g2d.drawImage(bgSrc, 0, 0, bgWidth, bgHeight, null);
31 g2d.drawImage(logoSrc, x, y, logoWidth, logoHeight, null);
32
33 ImageIO.write(tag, "png", response.getOutputStream());
34 } catch (Exception e) {
35 e.printStackTrace();
36 }
37 }
38 }

参考:

Java后台通过IO流将文件返回至前端进行预览

Java 生成海报的更多相关文章

  1. Java生成微信分享海报【基础设计】

    前言 微信后台生成海报一般都是一个模板写死,然后就完事了,过了不久让修改个模板,就又要看半天,还要考虑是否重新复制一份改一改,越来越多的重复代码,全在一个图片类里,然后就越来越乱.这两天用设计模式处理 ...

  2. Java生成和操作Excel文件(转载)

    Java生成和操作Excel文件   JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该A ...

  3. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  4. Java生成验证码原理(jsp)

     验证码的作用: 验证码是Completely Automated Public Turing test to tell Computers and Humans Apart(全自动区分计算机和人类的 ...

  5. JAVA生成条形码

    1.下载生成条形码所需要的jar包barcode4j.jar: 2.java生成条形码代码 import java.awt.image.BufferedImage;import java.io.Fil ...

  6. Java生成CSV文件实例详解

    本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  7. java 生成8位数字作为UID

    java 生成8位数字作为UUID: /*** * 生成uid 8位数字 */public static String generateUID(){ Random random = new Rando ...

  8. java生成随机序列号

    1.java生成随机序列号 String deleteUuid = UUID.randomUUID().toString(); 引用Jar包 //java-uuid-generator-3.1.3.j ...

  9. java生成简单Excel工作薄

    前言: 代码都是建立在实际需求上的,上周做完一个调外部电影券接口的项目,这周产品又要excel表格,大致内容为:券所属影院.图片URL.等信息制作为excel表格,把每次同步过来的数据给他分析. jx ...

  10. 【转】Java生成对应字符串的MD5密码模块

    原文网址:http://www.cnblogs.com/xudong-bupt/archive/2013/05/10/3070899.html (1)一般使用的数据库中都会保存用户名和密码,其中密码不 ...

随机推荐

  1. Vue+SSM+Element-Ui实现前后端分离(1)

    前言:最近学习vue,就突发奇想,小菜鸟的我是时候锻炼锻炼自己.闲话不说,整起 <-_-> 整体规划:先搭建前端,接下来后端,最后整合. 一.创建vue项目 1.安装nodejs( 傻瓜式 ...

  2. win10系统格式化后进行虚拟分区

    1. 目的 目前win10磁盘分区多数人采用两种方式: 1:只分一个C盘,文件在C盘以目录区分. 缺点:所有文件都在一起,区分查找比较麻烦. 2:物理分区,分多个盘,如C,D,E等等 缺点:容量固定, ...

  3. IDEA设置编码为UTF-8编码

    IntelliJ IDEA 统一设置编码为utf-8编码 问题一: File->Settings->Editor->File Encodings 网上的方法大部分都是错的,上图的单选 ...

  4. shortcuts

    关闭选项卡 Ctrl+W 关闭当前窗口 alt + F4 alt + 空格 + c alt + 空格 + n 最小化窗口 alt + 空格 + x 最大化窗口 ALT+F4 关闭当前应用程序 ctrl ...

  5. idea中新建java类

    project是项目,一个大目录,里面可以放多个module project里面存放: .idea文件(project相当于workplace) module(模块) out(编译生成的.class文 ...

  6. Java中简单易懂的HashMap面试题(面试必备)

    这篇文章仅限小编个人的理解,小编不是Java方向的,只是对Java有很高的学习兴趣 如果有什么不对的地方还望大佬指点 HashMap的底层是数组+链表,(很多人应该都知道了) JDK1.7的是数组+链 ...

  7. Github高效搜索方式

    Github高效搜索方式 文章目录 Github高效搜索方式 0.写在前面 1.常用的搜索功能 1.1 直接搜索 1.2 寻找指定用户|大小的仓库 1.3 搜索仓库 1.4 查找特定star范围的仓库 ...

  8. [Unity移动端]真机调试

    一.Android Studio 1.log打印 打开AS,新建一个工程,点击左下角的Logcat,如下图,1是设备(支持模拟器,如果是真机的话,需要usb连接电脑,真机要是usb调试模式),2是包名 ...

  9. Spring mvc 使用RestController 和 Controller

    1.RestController相当于Controller和ResponseBody两个注解功能的结合体 2.只有Controller 返回的结果是 视图,一个页面 . 这个要自己写相关的 hello ...

  10. 之前学的yield

    生成器&迭代器 生成器的特性1.生成器是一个有yield关键字的函数对象,yield暂停并保存并返回调用结果2.第一次通过next开始运行这个函数,以后每次next就从yield开始继续运行函 ...