c# 图片转Base64 Base64转图片

15 篇文章 2 订阅

先将图片转成 Base64 转成图片,再将 return 回来的 base64Str 直接赋值给  Base64ToImage(string base64) 函数(图片转出来的 base64 太长 我就不贴了,记得将图片路劲换成自己图片的路径哦,GoodNight!)

  static void Main(string[] args)
        {
            // 脸部识别
            // FaceDetect.detect();
            // 图片转 base64
          string base64Str = ImageToBase64("C:/Users/Administrator/Desktop/image.png");
            // base64转 图片
           Base64ToImage(base64Str);
        }
   /// <summary>
        /// base64 转 Image
        /// </summary>
        /// <param name="base64"></param>
        public static void Base64ToImage(string base64)
        {
            base64 = base64.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");//将base64头部信息替换
            byte[] bytes = Convert.FromBase64String(base64);
            MemoryStream memStream = new MemoryStream(bytes);
            Image mImage = Image.FromStream(memStream);
            Bitmap bp = new Bitmap(mImage);
            bp.Save("C:/Users/Administrator/Desktop/" + DateTime.Now.ToString("yyyyMMddHHss") + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);//注意保存路径
        }

        /// <summary>
        /// Image 转成 base64
        /// </summary>
        /// <param name="fileFullName"></param>
        public static string ImageToBase64(string fileFullName)
        {
            try
            {
                Bitmap bmp = new Bitmap(fileFullName);
                MemoryStream ms = new MemoryStream();
                bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                byte[] arr = new byte[ms.Length]; ms.Position = 0;
                ms.Read(arr, 0, (int)ms.Length); ms.Close();
                return Convert.ToBase64String(arr);
            }
            catch (Exception ex)
            {
                return null;
            }
        }

 

unity base64编码文本转换成Texture  base64编码文本转换成图片  图片转换成base64编码文本

 /// <summary>
        /// 图片转换成base64编码文本
        /// </summary>
        public string ImgToBase64String(string path)
        {

                FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, (int)fs.Length);
                string base64String = Convert.ToBase64String(buffer);
            //    Debug.Log("获取当前图片base64为---" + base64String);
            return base64String;
        }

        /// <summary>
        /// base64编码文本转换成Texture
        /// </summary>

        private Texture2D Base64ToTexter2d(string Base64STR)
        {
            Texture2D pic = new Texture2D(200, 200);
            byte[] data = System.Convert.FromBase64String(Base64STR);
            //File.WriteAllBytes(Application.dataPath + "/BuildImage/Base64ToSaveImage.png", data);
            pic.LoadImage(data);
            return pic;
        }

        /// <summary>
        /// base64编码文本转换成图片
        /// </summary>

        public void Base64ToImg(Image imgComponent,string str)
        {
            string base64 = str;
            byte[] bytes = Convert.FromBase64String(base64);
            Texture2D tex2D = new Texture2D(100, 100);
            tex2D.LoadImage(bytes);
            Sprite s = Sprite.Create(tex2D, new Rect(0, 0, tex2D.width, tex2D.height), new Vector2(0.5f, 0.5f));
            imgComponent.sprite = s;
            Resources.UnloadUnusedAssets();
        }

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值