Unity显示base64识别码图片(辅助标签:base64图片、c#、编码、解码)

文章目录

      • 一. 关于Base64
      • 二. 图片的Base64编码
      • 三. 图片在线Base64编解码
      • 四. Unity中如何显示Base64图片

一. 关于Base64

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

二. 图片的Base64编码

Created with Raphaël 2.2.0 图片的二进制流 每3个8位二进制转成4个6位二进制 6位二进制转十进制 根据十进制数值从The Base64 Alphabet表中获取字符 转换后的字符串

其中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
Unity显示base64识别码图片(辅助标签:base64图片、c#、编码、解码)_第1张图片
左边的识别码图片,经过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);

你可能感兴趣的:(Unity3D,C#)