最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 圖片與Base64碼的相互轉(zhuǎn)化問題(代碼詳解)

 更新時(shí)間:2020年03月11日 09:59:38   作者:麥葉  
這篇文章主要介紹了C# 圖片與Base64碼的相互轉(zhuǎn)化的代碼,通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Base64是網(wǎng)絡(luò)上最常見的用于傳輸8Bit字節(jié)碼的編碼方式之一,Base64就是一種基于64個(gè)可打印字符來表示二進(jìn)制數(shù)據(jù)的方法??刹榭碦FC2045~RFC2049,上面有MIME的詳細(xì)規(guī)范。
Base64編碼是從二進(jìn)制到字符的過程,可用于在HTTP環(huán)境下傳遞較長的標(biāo)識(shí)信息。采用Base64編碼具有不可讀性,需要解碼后才能閱讀。
Base64由于以上優(yōu)點(diǎn)被廣泛應(yīng)用于計(jì)算機(jī)的各個(gè)領(lǐng)域,然而由于輸出內(nèi)容中包括兩個(gè)以上“符號(hào)類”字符(+, /, =),不同的應(yīng)用場景又分別研制了Base64的各種“變種”。為統(tǒng)一和規(guī)范化Base64的輸出,Base62x被視為無符號(hào)化的改進(jìn)版本。

下面通過代碼給大家介紹下c# 圖片與base64相互轉(zhuǎn)化問題,代碼如下所示:

public ActionResult UploadSignature2(string src_data)
    {
      Class1.Base64StrToImage(src_data, "C:\\Users\\45448\\Desktop\\1\\"+ DateTime.Now.ToString("yyyyMMddHHss") + ".png");
      return Json(1, JsonRequestBehavior.AllowGet);
    }

    /// <summary>
    /// 將Base64字符串轉(zhuǎn)換為圖片并保存到本地
    /// </summary>
    /// <param name="base64Str">base64字符串</param>
    /// <param name="savePath">圖片保存地址,如:/Content/Images/10000.png</param>
    /// <returns></returns>
    public static bool Base64StrToImage(string base64Str, string savePath)
    {
      var ret = true;
      try
      {
        base64Str = base64Str.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "")
          .Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", ""); //將base64頭部信息替換
        var bitmap = Base64StrToImage(base64Str);
        if (bitmap != null)
        {
          //創(chuàng)建文件夾
          var folderPath = savePath.Substring(0, savePath.LastIndexOf('\\'));
          ////FileHelper.CreateDir(folderPath);
          if (!Directory.Exists(folderPath))
          {
            Directory.CreateDirectory(folderPath);
          }
          //圖片后綴格式
          var suffix = savePath.Substring(savePath.LastIndexOf('.') + 1,
            savePath.Length - savePath.LastIndexOf('.') - 1).ToLower();
          var suffixName = suffix == "png"
            ? ImageFormat.Png
            : suffix == "jpg" || suffix == "jpeg"
              ? ImageFormat.Jpeg
              : suffix == "bmp"
                ? ImageFormat.Bmp
                : suffix == "gif"
                  ? ImageFormat.Gif
                  : ImageFormat.Jpeg;

          //這里復(fù)制一份對圖像進(jìn)行保存,否則會(huì)出現(xiàn)“GDI+ 中發(fā)生一般性錯(cuò)誤”的錯(cuò)誤提示
          var bmpNew = new Bitmap(bitmap);
          bmpNew.Save(savePath, suffixName);
          bmpNew.Dispose();
          bitmap.Dispose();
        }
        else
        {
          ret = false;
        }
      }
      catch (Exception ex)
      {
        ret = false;
      }
      return ret;
  
    }
/// <summary>
    /// Image 轉(zhuǎn)成 base64
    /// </summary>
    /// <param name="fileFullName"></param>
    public static string ImageToBase64(string fileFullName)
    {
      try
      {
        Bitmap bmp = new Bitmap(fileFullName);
        MemoryStream ms = new MemoryStream();
        var suffix = fileFullName.Substring(fileFullName.LastIndexOf('.') + 1,
          fileFullName.Length - fileFullName.LastIndexOf('.') - 1).ToLower();
        var suffixName = suffix == "png"
          ? ImageFormat.Png
          : suffix == "jpg" || suffix == "jpeg"
            ? ImageFormat.Jpeg
            : suffix == "bmp"
              ? ImageFormat.Bmp
              : suffix == "gif"
                ? ImageFormat.Gif
                : ImageFormat.Jpeg;

        bmp.Save(ms, suffixName);
        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;
      }
    }

到此這篇關(guān)于C# 圖片與Base64碼的相互轉(zhuǎn)化問題(代碼詳解)的文章就介紹到這了,更多相關(guān)c# 圖片與base64相互轉(zhuǎn)化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#使用Win2D在UWP程序中實(shí)現(xiàn)2D繪圖

    C#使用Win2D在UWP程序中實(shí)現(xiàn)2D繪圖

    這篇文章介紹了C#使用Win2D在UWP程序中實(shí)現(xiàn)2D繪圖的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C#中DrawCurve的用法小結(jié)

    C#中DrawCurve的用法小結(jié)

    本文主要介紹了C#中DrawCurve的用法小結(jié),通常用于繪制一條平滑的曲線通過一系列給定的點(diǎn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • C#中通過API實(shí)現(xiàn)的打印類 實(shí)例代碼

    C#中通過API實(shí)現(xiàn)的打印類 實(shí)例代碼

    這篇文章介紹了,C#中通過API實(shí)現(xiàn)的打印類 實(shí)例代碼,有需要的朋友可以參考一下
    2013-08-08
  • gridview的buttonfield獲取該行的索引值(實(shí)例講解)

    gridview的buttonfield獲取該行的索引值(實(shí)例講解)

    本篇文章主要介紹了gridview的buttonfield獲取該行的索引值(實(shí)例講解)需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#常見算法面試題小結(jié)

    C#常見算法面試題小結(jié)

    這篇文章主要介紹了C#常見算法面試題,包含了常見的排序、字符串操作、類的操作等技巧,需要的朋友可以參考下
    2014-09-09
  • Visual Studio 2019配置vue項(xiàng)目的圖文教程詳解

    Visual Studio 2019配置vue項(xiàng)目的圖文教程詳解

    這篇文章主要介紹了Visual Studio 2019配置vue項(xiàng)目的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • c#自定義Attribute獲取接口實(shí)現(xiàn)示例代碼

    c#自定義Attribute獲取接口實(shí)現(xiàn)示例代碼

    這篇文章主要給大家介紹了關(guān)于c#自定義Attribute獲取接口實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用c#具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Unity3D實(shí)現(xiàn)虛擬按鈕控制人物移動(dòng)效果

    Unity3D實(shí)現(xiàn)虛擬按鈕控制人物移動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)虛擬按鈕控制人物移動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#實(shí)現(xiàn)獲取磁盤空間大小的方法

    C#實(shí)現(xiàn)獲取磁盤空間大小的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)獲取磁盤空間大小的方法,分別基于System.IO.DriveInfo.GetDrives方法與ManagementClass("Win32_LogicalDisk")來實(shí)現(xiàn)這一功能,是非常實(shí)用的技巧,需要的朋友可以參考下
    2014-12-12
  • UGUI實(shí)現(xiàn)圖片拖拽功能

    UGUI實(shí)現(xiàn)圖片拖拽功能

    這篇文章主要為大家詳細(xì)介紹了UGUI實(shí)現(xiàn)圖片拖拽功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評(píng)論

涿州市| 阳东县| 九寨沟县| 堆龙德庆县| 那坡县| 沧源| 忻州市| 布尔津县| 扎兰屯市| 赤峰市| 潞城市| 龙山县| 松江区| 玉龙| 玉树县| 浠水县| 沙田区| 内黄县| 克拉玛依市| 体育| 双牌县| 吴江市| 余庆县| 余庆县| 弥渡县| 吴江市| 博爱县| 花莲市| 屯昌县| 伽师县| 德清县| 舒兰市| 汽车| 临潭县| 康马县| 聂荣县| 肥东县| 萝北县| 德州市| 海原县| 文登市|