• zxing.unity.dll下载之后的位置找到UnityDemo/Assets下


    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    using ZXing;
    //二维码的生成
    public class TestQRCodeDraw : MonoBehaviour {

    [Header("绘制好的二维码显示界面")]
    public RawImage QRCode;
    //二维码绘制类
    BarcodeWriter barcodeWriter;
    [SerializeField] Button drawbutton;
    /// <summary>
    /// 将制定字符串信息转换成二维码图片信息
    /// </summary>
    /// <param name="formatStr">要生产二维码的字符串信息</param>
    /// <param name="width">二维码的宽度</param>
    /// <param name="height">二维码的高度</param>
    /// <returns>返回二维码图片的颜色数组信息</returns>
    Color32[] GeneQRCode(string formatStr,int width,int height)
    {
    //绘制二维码前进行一些设置
    ZXing.QrCode.QrCodeEncodingOptions options =
    new ZXing.QrCode.QrCodeEncodingOptions();
    //设置字符串转换格式,确保字符串信息保持正确
    options.CharacterSet = "UTF-8";
    //设置绘制区域的宽度和高度的像素值
    options.Width = width;
    options.Height = height;
    //设置二维码边缘留白宽度(值越大留白宽度大,二维码就减小)
    options.Margin = 1;

    //实例化字符串绘制二维码工具
    barcodeWriter = new BarcodeWriter {Format=BarcodeFormat.QR_CODE,Options=options };
    //进行二维码绘制并进行返回图片的颜色数组信息
    return barcodeWriter.Write(formatStr);

    }

    /// <summary>
    /// 根据二维码图片信息绘制指定字符串信息的二维码到指定区域
    /// </summary>
    /// <param name="str">要生产二维码的字符串信息</param>
    /// <param name="width">二维码的宽度</param>
    /// <param name="height">二维码的高度</param>
    /// <returns>返回绘制好的图片</returns>
    Texture2D ShowQRCode(string str,int width,int height)
    {
    //实例化一个图片类
    Texture2D t = new Texture2D(width, height);
    //获取二维码图片颜色数组信息
    Color32[] col32 = GeneQRCode(str, width, height);
    //为图片设置绘制像素颜色信息
    t.SetPixels32(col32);
    //设置信息更新应用下
    t.Apply();
    //将整理好的图片信息显示到指定区域中
    return t;
    }

    /// <summary>
    /// 开始绘制指定信息的二维码
    /// </summary>
    /// <param name="formatStr"></param>
    void DrawQRCode(string formatStr)
    {
    //注意:这个宽高度大小256不要变。不然生成的信息不正确
    //256有可能是这个ZXingNet插件指定大小的绘制像素点数值
    Texture2D t = ShowQRCode(formatStr, 256, 256);

    //显示到UI界面的图片上
    QRCode.texture = t;
    }


    public string QRCodeText = "二维码";
    void DrawButtonClick()
    {
    DrawQRCode(QRCodeText);
    }

    private void Start()
    {
    drawbutton.onClick.AddListener(DrawButtonClick);
    }
    }

  • 相关阅读:
    【Flask教程02】路由基本定义
    Ubuntu16.04下设置静态IP
    实例讲解虚拟机3种网络模式(桥接、nat、Host-only)
    greenplum单机安装
    GreenPlum 基础操作 入门教程
    repo
    RAW nand clear NAND eMMC
    #运算符、不同的指针类型、数组和指针、指针运算、堆、栈、静态区、只读区、下标VS指针
    LDPC知识点
    宏表达式与函数、#undef、条件编译、
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11488486.html
Copyright © 2020-2023  润新知