Unity结合ZXing生成二维码并保存
2014-02-19 17:54
267 查看
本文参考地址:
http://blog.csdn.net/liulala16/article/details/14521979 http://blog.csdn.net/hellogv/article/details/6101663 http://www.unitymanual.com/3164.html http://unity3d.9ria.com/?p=4748
首先要绘制图片,那么system.drawing.dll必不可少,大家可以在自己安装的Unity路径下找到mono的该文件并复制一份到当前的工程中(***\Unity\Editor\Data\Mono\lib\mono\2.0)。除了调用这个之外还有一个必备的文件调用ZXing net(下载地址:http://zxingnet.codeplex.com/),解压之后将unity文件夹导入到当前的工程中,这样制作二维码的工作就可以开始了!
新建一个脚本:
(图片保存至本地,android平台测试可用,不支持中文识别)。
http://pan.baidu.com/s/1kTLp64n
http://blog.csdn.net/liulala16/article/details/14521979 http://blog.csdn.net/hellogv/article/details/6101663 http://www.unitymanual.com/3164.html http://unity3d.9ria.com/?p=4748
首先要绘制图片,那么system.drawing.dll必不可少,大家可以在自己安装的Unity路径下找到mono的该文件并复制一份到当前的工程中(***\Unity\Editor\Data\Mono\lib\mono\2.0)。除了调用这个之外还有一个必备的文件调用ZXing net(下载地址:http://zxingnet.codeplex.com/),解压之后将unity文件夹导入到当前的工程中,这样制作二维码的工作就可以开始了!
新建一个脚本:
using UnityEngine; using System; using System.IO; using System.Collections; using System.Drawing; using ZXing; using ZXing.QrCode; public class TwoDimesionCode : MonoBehaviour { public Texture2D encoded; //二维码贴图 public string Lastresult = ""; //生成二维码的信息 void Start() { encoded = new Texture2D(256, 256); //二维码图片大小 } /// <summary> ///根据二维码包含的信息以及宽高,对文本信息进行转码 /// </summary> /// <param name="textForEncoding"></param> /// <param name="width"></param> /// <param name="height"></param> /// <returns></returns> private static Color32[] Encode(string textForEncoding, int width, int height) { BarcodeWriter writer = new BarcodeWriter { Format = BarcodeFormat.QR_CODE, Options = new QrCodeEncodingOptions { Height = height, Width = width } }; return writer.Write(textForEncoding); } void OnGUI() { Lastresult = GUI.TextField(new Rect(10, 10, 150, 30), Lastresult); //输入二维码包含信息 if (GUI.Button(new Rect(10, 45, 100, 30), "Draw")) { //绘制二维码 string textForEncoding = Lastresult; if (textForEncoding != null) { Color32[] color32 = Encode(textForEncoding, encoded.width, encoded.height); encoded.SetPixels32(color32); //根据转换来的32位颜色值来计算二维码的像素 encoded.Apply(); //生成二维码 } } if (GUI.Button(new Rect(10, 80, 100, 30), "SaveEncode") && encoded != null) { try { byte[] pngData = encoded.EncodeToPNG(); //将Texture2D转码成png格式的字节数据 if (Application.platform == RuntimePlatform.Android) { File.WriteAllBytes(Application.persistentDataPath + "/" + Lastresult + "png", pngData); //Android平台上保存的图片地址(一般保存在Android/data/com.***.***文件夹下) GUI.Label(new Rect(Screen.width, Screen.height, Screen.width, Screen.height / 2), Application.persistentDataPath); } else { File.WriteAllBytes(Application.dataPath + "/TwoDimensionCode/" + Lastresult + ".png", pngData); //非Android平台图片保存地址 } print("save ok"); } catch (Exception ioe) { Debug.LogException(ioe); //输出图片保存异常信息 } } GUI.DrawTexture(new Rect(Screen.width/2-128, Screen.height/2-128, 256, 256), encoded); //在屏幕上绘制出生成的二维码 if (GUI.Button(new Rect(10, 115, 100, 30), "Exit")) { Application.Quit(); } } }然后将此脚本挂在摄像机或者场景中的任何物体上,点击运行,输入字符串如“123456879”,点击“Draw”后可以在界面上看到生成的二维码,然后点击“SaveEncode”可以将二维码保存到本地文件夹中。
(图片保存至本地,android平台测试可用,不支持中文识别)。
http://pan.baidu.com/s/1kTLp64n
相关文章推荐
- Unity结合ZXing生成中间带图标的二维码并保存
- Unity结合ZXing生成二维码并保存
- Unity 二维码使用 之 ZXing生成中间带图标的二维码并保存
- zxing生成的二维码(bitmap)保存到sdcard一团黑解决办法
- 使用Zxing生成二维码,以及保存到sdcard,图片变黑的问题
- zxing生成的二维码(bitmap)保存到sdcard一团黑解决办法
- zxing开源项目 解决生成二维码保存的问题
- 【转】使用ZXing生成二维码 QR-Code
- Android基于Zxing实现二维码,条形码扫描和生成二维码
- 使用ZXing实现二维码的扫描和生成带logo的二维码
- 提高zxing生成二维码的容错率及zxing生成二维码的边框设置
- Android:使用ZXing生成二维码(支持加入Logo图案)
- java利用zxing生成二维码
- Zxing二维码的生成与扫描,调起相册
- zxing二维码生成
- zxing 生成二维码时减少空白区域
- [转]zxing二维码的生成与解码(C#)
- 二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...
- .NET使用ZXing.NET生成中间带图片的二维码
- 使用zxing生成二维码