• Atitit.二维码功能的设计实践 attilax 总结


    Atitit.二维码功能的设计实践 attilax 总结

     

     

    1.1. 二维码要实现的功能1

    1.2. 现有二维码功能设计不足的地方(待改进)1

    1.3. 二维码组件1

    1.4. Java版  zxing类库..2

    1.5. Phplaveral框架版3

    1.6. Phpqrcode框架版3

    1.7. Qa集合与注意事项3

     

    1.1. 二维码要实现的功能

    显示二维码

    保持二维码图片为文件

    直接输出二维码图片流

    Img src为二维码图片

    一般要传递order_id 或者一个url参数为主。

     

     

     

     

    1.2. 现有二维码功能设计不足的地方(待改进)

    Java phpapi 统一化

    增加Js sdk

     

     

    1.3. 二维码组件

    Prj eform

    <a href="{{ url('/qrcodeQ5/qrcode.php?url='.base64_encode($url)) }}">

          <img class="img-res bd" style="max-250px" src="{{ url('/qrcodeQ5/qrcode.php?url='.base64_encode($url)) }}" alt="...">

        </a>

     

    作者::  ★(attilax)>>>   绰号:老哇的爪子  全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊  汉字名:艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

     

    1.4. Java版  zxing类库..

     

    #-----com.xx.share.sharex.java

    public   String gene(String code) {
            String qrcodedir = "qrcodeO5/"+filex.getUUidName()+".jpg";
        
            String path=pathx.webAppPath() + "/" + qrcodedir;
            filex.createAllPath(path);
            core.log("--qrcode path:"+path);
        // attilax 老哇的爪子  下午5:30:42   2014511 
          qrcodex.    gene(code, path, 250, 250);
          return qrcodedir;
        }

     

    #----com.attilax.qrcode.qrcodex.javar


    public static void gene(final String content, final String path,
                final int width, final int height) {
            new tryX<Object>() {

                @Override
                public Object item(Object t) throws Exception {
                    // attilax 老哇的爪子  下午5:23:26   2014511 
                       MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
                         
                         Map hints = new HashMap();
                         hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
                     
                        BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, width, height,hints);
                         File file1 = new File(path );
                         MatrixToImageWriter.writeToFile(bitMatrix, "jpg", file1);
                    return null;
                }
            }.$("");
        }    
        

     

    1.5. Phplaveral框架版

        ob_clean();//清除输出

     $image=QrCode::format('png')->merge('/public/'.CDN_IMG.'logo.png', .3)->margin(2)->size(200)->color(0,0,0)->backgroundColor(255,255,255)->encoding('UTF-8')->generate($url);

    return response()->make($image, 200, [

                'content-type' => 'image/png',

            ]);

    1.6. Phpqrcode框架版

     

    <?php

    $url=base64_decode($_GET["url"]);

    include 'phpqrcode/phpqrcode.php';

    //QRcodeQ5::png('code data text', 'filename.png'); // creates file

    QRcodeQ5::png($url);

     

    //QRcodeQ5::png('some othertext 1234'); // creates code image and outputs it directly into browser

    //输出图片   

    //imagepng($QR, 'helloweixin.png');   

    ?>

     

     

    1.7. Qa集合与注意事项

    输出png的图片不能正常显示,这个通常是bom头造成的,某一个类库phputf8格式的,而生成qrcodephp界面include了它。。。最简单的解决方案是

    先用   ob_clean();//清除输出,一般就可,但在laveral框架下,任然不可。。

    就把生成qrcodephp组件独立出来,然后通过imgsrc调用。。即可。。

     

    参考

    atitit.二维码生成总结java zxing - attilax的专栏 - 博客频道 - CSDN.NET.html

  • 相关阅读:
    Hibernate学习笔记
    Servlet:从入门到实战学习(3)---Servlet实例【图文】
    Servlet:从入门到实战学习(2)---Servlet生命周期
    Servlet:从入门到实战学习(1)---全·环境配置
    java复习(9)---数据库JDBC
    java复习(8)---I/O
    java复习(7)---集合类、泛型
    java复习(6)---异常处理
    C#尝试读取或写入受保护的内存。这通常指示其他内存已损坏
    C# TTS 文本转语音中断实现方式
  • 原文地址:https://www.cnblogs.com/attilax/p/15198559.html
Copyright © 2020-2023  润新知