using UnityEngine;
using System.Collections;using ZXing;using ZXing.QrCode;using System;using System.IO;public class BarcodeCam : MonoBehaviour{ public Texture2D encoded;//生成的二维码为Texture2D类型 public string Lastresult;//二维码中所包含的内容信息,我是使用了GUID进行代替 public int count = 5;//生成几个二维码 void Start() {encoded = new Texture2D(256, 256);
for (int i = 0; i < count; i++) { Guid idKey = Guid.NewGuid(); Lastresult = idKey.ToString(); var textForEncoding = Lastresult; if (textForEncoding != null) { var color32 = Encode(textForEncoding, encoded.width, encoded.height); encoded.SetPixels32(color32); encoded.Apply(); byte[] bytes = encoded.EncodeToPNG();//把二维码转成byte数组,然后进行输出保存为png图片就可以保存下来生成好的二维码 if (!Directory.Exists(Application.dataPath + "/AdamBieber"))//创建生成目录,如果不存在则创建目录 { Directory.CreateDirectory(Application.dataPath + "/AdamBieber"); } string fileName = Application.dataPath + "/AdamBieber/" + idKey + ".png"; System.IO.File.WriteAllBytes(fileName, bytes); } } } private static Color32[] Encode(string textForEncoding, int width, int height) { var writer = new BarcodeWriter { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = height, Width = width } }; return writer.Write(textForEncoding); }void OnGUI()
{ GUI.DrawTexture(new Rect(100, 100, 256, 256), encoded); }}