精华内容
下载资源
问答
  • 生成图片合成二维码

    2017-10-19 09:32:22
    根据图片生成微信二维码,可设置访问网页,直接部署到项目即可用,不报错,简单方便实用。
  • 需求:在项目中遇到将一张固定图片和一张二维码图片合成一张新图片,并且用户能够将图片保存下载到本地。 思路:使用 CSS3 中的 Canvas 将两张图片绘制。 HTML 部分 <div> <img id="img1" src="wenbo.jpg...

    CSS3 Canvas 实现两张图片合成一张图片

    需求

    需求:在项目中遇到将一张固定图片和一张二维码图片合成一张新图片,并且用户能够将图片保存下载到本地。

    思路:使用 CSS3 中的 Canvas 将两张图片绘制。

    HTML 部分

    <div>
      <img id="img1" src="wenbo.jpg" alt="" />
      <img id="img2" src="demo.png" alt="" />
    </div>
    <br />
    <div>
      <canvas width="300" height="300" id="myCanvas"></canvas>
    </div>
    

    JavaScript 部分

    var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");
    //获取元素
    var img1 = document.getElementById("img1");
    var img2 = document.getElementById("img2");
    // 等待图片加载完毕
    img1.onload = function () {
      ctx.drawImage(img1, 0, 0, 300, 300);
    };
    img2.onload = function () {
      ctx.drawImage(img2, 75, 75, 150, 150);
    };
    

    实现效果

    如下图所示:

    image

    html2canvans

    html2canvans 插件也可以实现相关功能
    插件地址:http://html2canvas.hertzen.com/

    展开全文
  • 图片合成编码,二维码+图片合成,两张图片合成编码最终版
  • 我们会有以下二维码合成GIF图的场景需求: 1、怎样把几支付宝付款码合成一张动态的二维码图轮流切换然后扫描识别; 2、如何将几微信名片二维码或者微信付款码、商家码合成一张动态的二维码图片; 3、将...

    我们会有以下二维码合成单张GIF图的场景需求:

    1、怎样把几张支付宝付款码合成一张动态的二维码图轮流切换然后扫描识别;

    2、如何将几张微信名片二维码或者微信付款码、商家码合成一张动态的二维码图片;

    3、将多张图合并成一张GIF图来使用等等。

    以上的需求都会有很多用户碰到,那么怎样快速的将几张二维码合并成一张二维码动态图呢?

    如下图两张微信公众号二维码图片合并成一张二维码动态图:

    1572501411439483.jpg1572501419967354.jpg→→→→→→1572501472120553.gif

     

    重点来了!怎么去合成呢?

    12tool推出了一款在线的二维码合成工具,将多张二维码合成一张动态图的在线生成工具。

    工具地址:http://www.12tool.com/qr

    如下动态教程图可以参考制作:

    展开全文
  • 微商客服,支付二维码等,可能会出现一个公众号出现需要展示多个客服的情况,或是需要展示多种支付方式,但又不可能将所有的客服二维码一一列出来,或将各种支付二维码一一列出来,这个时候,多张二维码合成一张动态...

    现在是无论是电商客服,微商客服,支付二维码等,可能会出现一个公众号出现需要展示多个客服的情况,或是需要展示多种支付方式,但又不可能将所有的客服二维码一一列出来,或将各种支付二维码一一列出来,这个时候,多张二维码合成一张动态二维码随机扫码
    在这里插入图片描述
    我们通过我们微助点官方设计人员使用二维码合成技术,把这三张二维码合成一张动态的二维码图片,生成后的动态二维码图片如下图所示:

    大家可以试试扫一扫这个二维码,每次扫描出来的二维码应该是不一样的,基本是1:1:1的概率出现3张二维码里面的内容。

    接下来划重点了!

    接下来划重点了!

    接下来划重点了!

    多张二维码合成在线生成平台已经上线了 。多张二维码合成在线生成器地址:http://www.12tool.com/qr
    在这里插入图片描述

    展开全文
  • 张图片合成一张 例如:一张二维码,一张背景图,把二维码放在背景图上。 Service层代码 图片保存到 @Service public class ResumeTemplateServiceImpl extends ServiceImpl<ResumeTemplateMapper, ...

    两张图片合成一张
    例如:一张二维码,一张背景图,把二维码放在背景图上。

    Service层代码

    图片保存到

    @Service
    public class ResumeTemplateServiceImpl extends ServiceImpl<ResumeTemplateMapper, ResumeTemplate> implements IResumeTemplateService {
    
        private static String ComposeFileNameManual = "compose_images";
    
        /**
         * 请求 url 中的资源映射,不推荐写死在代码中,最好提供可配置,如 /upload_flowChart/**
         */
        @Value("${uploadFile.resourceHandler}")
        private String resourceHandler;
    
        /**
         * 上传文件保存的本地目录,使用@Value获取全局配置文件中配置的属性值,如 E:/java/upload_flowChart/
         */
        @Value("${uploadFile.location}")
        private String uploadImagesLocation;
    
    
    /**
     * 合成图片
     * @param templatePath 模板地址
     * @param seedPath 二维码地址
     * @return种子模板链接
     */
    @Override
    public String composePic(String templatePath, String seedPath) {
    
        try {
        //文件名
        String picName = UUID.randomUUID().toString() + ".jpg";
        //日期格式文件夹
        String composeFileName = BatchNumberUtils.getFileNameByDate(ComposeFileNameManual);
        //合成图片文件夹
        File pathFile = new File(uploadImagesLocation + File.separator + composeFileName);
        //合成文件路径
        String path = uploadImagesLocation + File.separator + composeFileName + File.separator + picName;
        //数据库储存地址
        String dataPath = resourceHandler.substring(0, resourceHandler.length() - 2) + composeFileName + "/" + picName;
    
            if (seedPath == null || StringUtils.isBlank(seedPath)) {
                File file = new File(seedPath);
                if (!file.isFile()) {
                    System.out.println("图片源路径不是一个文件");
                }
                System.out.println("图片源路径不存在");
            }
            if (templatePath == null || StringUtils.isBlank(templatePath)) {
                File file = new File(templatePath);
                if (!file.isFile()) {
                    System.out.println("背景图片路径不是一个文件");
                }
                System.out.println("背景图片路径不存在");
            }
    
            if (!pathFile.exists()) {
                pathFile.mkdirs();
            }
    
    //---------------------------------合成图片步骤-----------------------------
            //背景
       		File templateFlie = new File(templatePath);
            BufferedImage bg = ImageIO.read(templateFlie);//读取背景图片
            int height = bg.getHeight();//背景图片的高
            int width = bg.getWidth();  //背景图片的宽
    
            BufferedImage qcCode = ImageIO.read(new File(seedPath));  //读取二维码图片 300 * 300
            BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);//创建画布
            Graphics g = img.getGraphics();//生成画笔 开启画图
    
            // 绘制背景图片
            g.drawImage(bg.getScaledInstance(width, height, Image.SCALE_DEFAULT), 0, 0, null); // 绘制缩小后的图
            //绘制二维码图片  定位到背景图的右下角
            g.drawImage(qcCode.getScaledInstance(width / 4, width / 4, Image.SCALE_DEFAULT), width - (width / 4)-10, height - (width / 4)- 10, null); // 绘制缩小后的图
    		//关掉画笔
            g.dispose();
    
            ImageIO.write(img, "jpg", new File(path));
    
            System.out.println("合成图片成功,路径:" + path);
            //返回合成图片的路径
            return dataPath;
        } catch (Exception E) {
            throw new CustomException("图片合成失败", 400);
        }
    
    }
    }
    
    
    工具类生成带日期的文件夹
    public class BatchNumberUtils {
    
        private static final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
        private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
        private static final AtomicInteger atomicInteger = new AtomicInteger(1000000);
    
        /**
         * 创建不连续的订单号
         *
         * @param no 数据中心编号
         * @return 唯一的、不连续订单号
         */
        public static synchronized String getOrderNoByUUID(String no) {
            Integer uuidHashCode = UUID.randomUUID().toString().hashCode();
            if (uuidHashCode < 0) {
                uuidHashCode = uuidHashCode * (-1);
            }
            String date = simpleDateFormat.format(new Date());
            return no + date + uuidHashCode;
        }
    
        /**
         * 获取同一秒钟 生成的订单号连续
         *
         * @param no 数据中心编号
         * @return 同一秒内订单连续的编号
         */
        public static synchronized String getOrderNoByAtomic(String no) {
            atomicInteger.getAndIncrement();
            int i = atomicInteger.get();
            String date = simpleDateFormat.format(new Date());
            return no + date + i;
        }
    
        /**
         * 获取当前日期组成的文件名
         * @param name 文件名前缀
         * @return 组成的文件名
         */
        public static synchronized String getFileNameByDate(String name) {
            String date = dateFormat.format(new Date());
            return name +"/"+ date;
        }
    
    }
    

    编写一个虚拟映射器

    虚拟映射相当于一个中转站, 从数据库里拿到相对路径映射器给映射到磁盘上,从而达到图片的访问

    @Configuration
    public class WebMvcConfig implements WebMvcConfigurer {
    
    
       @Value("${uploadFile.resourceHandler}")
       private String resourceHandler;
    
       @Value("${uploadFile.location}")
       private String location;
    
    
    
       /**
        * 虚拟映射
        */
       @Override
       public void addResourceHandlers(ResourceHandlerRegistry registry) {
    
          // 就是说 url (http://localhost:8080/flow/upload_flowChart/xxxxxxx.jpg)
          //中出现 resourceHandler 匹配时,则映射到 location 中去,location 相当于虚拟的,被映射的路径
          // 映射本地文件时,开头必须是 file:/// 开头,表示协议
          registry.addResourceHandler(resourceHandler).addResourceLocations("file:///" + location);
    
       }
    
    }
    

    ** Bootstrap.yml文件**

    虚拟映射器设置图片保存路径

    ###上传文件配置 :该配置可根据部署的系统或开发人员自定义路径,每次部署之前需要修改location
    uploadFile:
      resourceHandler: /img/**   #请求 url 中的资源映射也是保存到数据库中的父级路径
    
      location: D:\\resume\\file\\ #自定义上传文件服务器硬盘保存路径  ,linux服务器保存路径 /opt/java/resume/images
    
    

    合成图片保存地址
    在这里插入图片描述

    数据库存的路径
    在这里插入图片描述

    通过服务器访问生成的图片
    在这里插入图片描述

    展开全文
  • 应客户要求 需要把两张图片合成一张保存起来 一张背景图 一张二维码图 用于二维码扫描 区分代理和上下级关系 期望の效果 实现流程 背景图 客户希望是自己可以上传 这样不那么单调 我们从后台接口回去imageUrl 转成...
  • 微商客服,支付二维码等,可能会出现一个公众号出现需要展示多个客服的情况,或是需要展示多种支付方式,但又不可能将所有的客服二维码一一列出来,或将各种支付二维码一一列出来,这个时候,多张二维码合成一张动态...
  • 把信息生成二维码合成一张图片
  • 最近刚接了一个同行的小...先生成一个带参数的二维码,然后下一步再把此二维码合成到一张海报上,此海报上还要在打上几个文字。 花了一个小时,帮他写了一下,不说了,上实例 http://www.tocnc.com/ewm/index.asp ...
  • } } /** * @Description : 将二维码图片和文字生成到一张图片上 * @Param : localFilePath 生成的新图片存放路径 * @Param : originalImg 原图 * @Param : qrCodeImg 二维码地址 * @Param : shareDesc 图片文字 * @...
  • tp合成二维码海报

    2019-05-23 01:20:27
    生成二维码 header('Content-Type:text/html;charset=UTF-8'); $_var_26 = ''; $url = $_var_26 . '/app/index/qudao.html?uid=' . base64_encode($_var_23); Loader::import('phpqrcode.phpqrcode',EXTEND_PATH,'...
  • } return temp } 将canvas合成图片绘制到div中 function convertCanvasToImage(canvas, el) { // 将canvas合成图片绘制到div中 var hc_image = new Image(); hc_image.src = canvas.toDataURL("image/png"); el...
  • /** * 分享商品 合成二维码图片 * @param commodityId * @param request * @param response * @return * @throws IOException * @throws WriterException/ */ @RequestMapping(va...
  • 前端合成二维码与背景图片,批量导出ZIP下载背景:需要生成很的二维码,并且结合背景图片一起生成图片,批量下载到本地,提供给打印厂商进行打印。方案1:后台合成,后台提供下载. 方案2:前端合成,前端提供下载...
  • angular 一张图片二维码合成一张图片并保存1.(ionic3)生成一个二维码2.合成图片3.保存图片(base64格式) 1.(ionic3)生成一个二维码 导入插件(ionic3需要在app.module引用,ionic4只在对象module引用就ok) npm ...
  • PHP 合成二维码

    2019-03-28 09:44:10
    $itemid = $_GET[‘num_iid’]; $c = new TopClient; $c->appkey = $appkey; $c->secretKey = $secret; $req = new TbkItemInfoGetRequest;...setFields(“num_iid,title,pict_url,small_images,reserve_p...
  • * @Description : 将二维码图片和文字生成到一张图片上 * @Param : originalImg 原图 * @Param : qrCodeImg 二维码地址 * @Param : shareDesc 图片文字 * @return : java.lang.String * @Author : ...
  • 1、html中canvas 的宽高要跟 填充背景的宽高保持一致,否则画出来的图片会被截取,不完整; 一定要先阅读文档:wx.createCanvasContext() <canvas class="canvas_box" style="width:{{systemInfo.screenWidth*2...
  • //合成图片的方法 function drawAndShareImage(div,img){ var canvas = document.createElement("canvas"); canvas.width = 700; canvas.height = 1300; var context = canvas.getContext("2d"); context....
  • 需求描述:需求中为了减少服务器内存,后端返回二维码,由前端添加背景图片合成一张二维码下载图片。 1、合成图片 <canvas id="codeCanvas" width="350" height="507"></canvas> const ...
  • 二维码生成, 图片合成, 文字图片合成工具类 亲测有效,可以生成二维码,两张图片合成一张图片,在图片上添加文字
  • * @description:合成二维码图片为输出流,可用于下载或直接展示 * @author 李阳 * @date 2018/12/13 * @params [backPicPath, code] * @return java.io.InputStream */ public static final void ...
  • 图片二维码合成海报.zip
  • 小程序画布合成二维码海报图,并保存到相册 实现效果如下图: 步骤分析 1,先获取需要合成的海报和二维码。 2,获取图片的本地路径,如果图片不是网络连接则不需要此操作。 3,通过手机型号,根据屏幕的大小计算出...
  • .NET 图片合成图片加文字,图片二维码,可直接设置背景图绝对路径、要合成图片地址、宽度、高度、margin-left、margin-top位置进行图片合成。 设置文字位置、文字大小进行图片文字合成,已在个项目中使用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,859
精华内容 1,543
关键字:

多张图片合成二维码