标签:zxing height null private post creat jpg url void
public void CaptureScreen(Camera c, Rect r)
{
//捕抓摄像机图像并转换成字符数组
RenderTexture rt = new RenderTexture((int)r.width, (int)r.height, 0);
c.targetTexture = rt;
c.Render();
RenderTexture.active = rt;
Texture2D screenShot = new Texture2D((int)r.width, (int)r.height, TextureFormat.RGB24, false);
screenShot.ReadPixels(r, 0, 0);
screenShot.Apply();
c.targetTexture = null;
RenderTexture.active = null;
GameObject.Destroy(rt);
byte[] bytes = screenShot.EncodeToPNG();
string url = "http://cus.szqicnt.com/whzq/put.php";//要上传到的地址
WWWForm form = new WWWForm();
form.AddField("name", "test.png");
form.AddBinaryData("file", bytes);//把图片流上传
WWW www = new WWW(url, form);
StartCoroutine(PostData(www));//启动子线程
Destroy(screenShot);//销毁
}
IEnumerator PostData(WWW www)
{
yield return www;
string returnStr = www.text.Trim();
Debug.Log(returnStr);
if(returnStr == "1")
{
Debug.Log("图片文件容量超过php.ini限制");
}
Texture2D qr = ZXingUtil.instance.QrCreat(returnStr);
if(qr!=null && this.QRCode!=null)
{
this.QRCode.texture = qr;
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using UnityEngine;
using ZXing;
using ZXing.Common;
public class ZXingUtil : MonoBehaviour {
private int _width = 256;
private int _height = 256;
private Texture2D _texure2d;
private bool _success;
public static ZXingUtil instance;
EncodingOptions options = null;
BarcodeWriter writer = null;
void Awake()
{
instance = this;
}
void Start()
{
_texure2d = new Texture2D(_width, _height);
options = new EncodingOptions
{
Width = _width,
Height = _height
};
writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options = options;
}
/// <summary>
/// 传入条形码内容 返回条码图,条形码须为偶数位
/// </summary>
/// <param name="barcode"></param>
/// <returns></returns>
public Texture2D QrCreat(string barcode)
{
try
{
Bitmap bitmap = writer.Write(barcode);
Image image = writer.Write(barcode);
//将PNG / JPG图像字节数组加载到纹理中
_texure2d.LoadImage(ImageToByte(image));
return _texure2d;
}
catch (Exception e)
{
Debug.LogError("z xing error:"+e);
return null;
}
}
public Texture2D QrCreat(string barcode, Vector2 imageVec)
{
_texure2d = new Texture2D((int)imageVec.x, (int)imageVec.y);
Bitmap bitmap = writer.Write(barcode);
_texure2d.LoadImage(ImageToByte(bitmap));
return _texure2d;
}
//将image类型转化为byte[]类型
private byte[] ImageToByte(Image img)
{
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(img, typeof(byte[]));
}
}
标签:zxing height null private post creat jpg url void
原文地址:https://www.cnblogs.com/clhxxlcj/p/10972658.html