微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity显示base64识别码图片base64图片、验证码

一. 关于Base64

目前Base64已经成为网络上常见的传输8Bit字节代码的编码方式之一。
Base64到底起到什么作用呢?
在参数传输的过程中经常遇到的一种情况:使用全英文的没问题,但一旦涉及到中文就会出现乱码情况。与此类似,网络上传输的字符并不全是可打印的字符,比如二进制文件图片等。Base64的出现就是为了解决此问题,它是基于64个可打印的字符来表示二进制的数据的一种方法

二. 图片的Base64编码

其中The Base 64 Alphabet表如下

The Base 64 Alphabet
     Value Encoding  Value Encoding  Value Encoding  Value Encoding
         0 A            17 R            34 i            51 z
         1 B            18 S            35 j            52 0
         2 C            19 T            36 k            53 1
         3 D            20 U            37 l            54 2
         4 E            21 V            38 m            55 3
         5 F            22 W            39 n            56 4
         6 G            23 X            40 o            57 5
         7 H            24 Y            41 p            58 6
         8 I            25 Z            42 q            59 7
         9 J            26 a            43 r            60 8
        10 K            27 b            44 s            61 9
        11 L            28 c            45 t            62 +
        12 M            29 d            46 u            63 /
        13 N            30 e            47 v
        14 O            31 f            48 w         (pad) =
        15 P            32 g            49 x
        16 Q            33 h            50 y

三. 图片在线Base64编解码

http://tool.chinaz.com/tools/imgtobase

在这里插入图片描述


左边的识别码图片,经过Base64编码后,变成一个长长的字符串

四. Unity中如何显示Base64图片

通过Base64图片的字符串,转成Texture2D,即可用于显示

    public Texture2D Base64StringToTexture(string base64Str)
    {
        try
        {
            //将base64头部信息替换
            base64Str = base64Str.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64, "")
                .Replace("data:image/jpg;base64, "").Replace("data:image/jpeg;base64, "");
            byte[] bytes = Convert.FromBase64String(base64Str);
            Texture2D texture = new Texture2D(10, 10);
            texture.LoadImage(bytes);
            return texture;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

如果想把图片的二进制流转成Base64字符串

string base64Str = Convert.ToBase64String(bytes);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐