zoukankan      html  css  js  c++  java
  • QR编码加logo

    <?php
    /**
     * QR Code + Logo Generator
     *
     * http://labs.nticompassinc.com
     */
    $data = isset($_GET['data']) ? $_GET['data'] : 'http://labs.nticompassinc.com';
    $size = isset($_GET['size']) ? $_GET['size'] : '200x200';
    $logo = isset($_GET['logo']) ? $_GET['logo'] : FALSE;
     
    header('Content-type: image/png');
    // Get QR Code image from Google Chart API
    // http://code.google.com/apis/chart/infographics/docs/qr_codes.html
    $QR = imagecreatefrompng('https://chart.googleapis.com/chart?cht=qr&chld=H|1&chs='.$size.'&chl='.urlencode($data));
    if($logo !== FALSE){
        $logo = imagecreatefromstring(file_get_contents($logo));
     
        $QR_width = imagesx($QR);
        $QR_height = imagesy($QR);
        
        $logo_width = imagesx($logo);
        $logo_height = imagesy($logo);
        
        // Scale logo to fit in the QR Code
        $logo_qr_width = $QR_width/3;
        $scale = $logo_width/$logo_qr_width;
        $logo_qr_height = $logo_height/$scale;
        
        imagecopyresampled($QR, $logo, $QR_width/3, $QR_height/3, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
    }
    imagepng($QR);
    imagedestroy($QR);
    ?>

    下面是我改造的代码(丑陋)

    qr图片和logo生成好了的

                $QR = imagecreatefrompng($qrImage);
                if($logo !== FALSE){
                    $logo = imagecreatefromstring(file_get_contents($logo));
                 
                    $QR_width = imagesx($QR);
                    $QR_height = imagesy($QR);
                    
                    $logo_width = imagesx($logo);
                    $logo_height = imagesy($logo);
                    
                    $logo_qr_width = $QR_width/3;
                    $scale = $logo_width/$logo_qr_width;
                    $logo_qr_height = $logo_height/$scale;
                    
                    imagecopyresampled($QR, $logo, $QR_width/3, $QR_height/3, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
                }
                imagepng($QR,$qrImage);
                imagedestroy($QR);
                Cache::write('logoImagePath',$qrImage);
                $this->set('url','/Tools/logoImageFile');
     $logo = imagecreatefromstring(file_get_contents($logo)); 最简单的一个打开图片。
  • 相关阅读:
    LintCode: Convert Sorted Array to Binary Search Tree With Minimal Height
    LNMP企业应用部署全过程(基于DEDE后台)
    提高Web服务器并发响应的经历
    提高Web服务器并发响应的经历
    提高Web服务器并发响应的经历
    提高Web服务器并发响应的经历
    华为设备RIP实施和理论详解
    华为设备RIP实施和理论详解
    MySQL 官方 Docker 镜像的使用
    Docker之docker设置系统的环境变量
  • 原文地址:https://www.cnblogs.com/linksgo2011/p/2989684.html
Copyright © 2011-2022 走看看