欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#實現(xiàn)字符串與圖片的Base64編碼轉(zhuǎn)換操作示例

 更新時間:2017年06月26日 11:20:18   作者:songkexin  
這篇文章主要介紹了C#實現(xiàn)字符串與圖片的Base64編碼轉(zhuǎn)換操作,結(jié)合實例形式分析了C#針對base64編碼與圖片的相互轉(zhuǎn)換操作技巧,需要的朋友可以參考下

本文實例講述了C#實現(xiàn)字符串與圖片的Base64編碼轉(zhuǎn)換操作。分享給大家供大家參考,具體如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Drawing.Imaging;
namespace base64_img
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
    //圖片 轉(zhuǎn)為  base64編碼的文本
    private void button1_Click(object sender, EventArgs e)
    {
      OpenFileDialog dlg = new OpenFileDialog();
      dlg.Title = "選擇要轉(zhuǎn)換的圖片";
      dlg.Filter = "Image files (*.jpg;*.bmp;*.gif)|*.jpg*.jpeg;*.gif;*.bmp|AllFiles (*.*)|*.*";
      if (DialogResult.OK == dlg.ShowDialog())
      {
        ImgToBase64String(dlg.FileName);
      }
    }
    //圖片 轉(zhuǎn)為  base64編碼的文本
    private void ImgToBase64String(string Imagefilename)
    {
      try
      {
        Bitmap bmp = new Bitmap(Imagefilename);
        this.pictureBox1.Image = bmp;
        FileStream fs = new FileStream(Imagefilename + ".txt", FileMode.Create);
        StreamWriter sw = new StreamWriter(fs);
        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();
        String strbaser64 = Convert.ToBase64String(arr);
        sw.Write(strbaser64);
        sw.Close();
        fs.Close();
        MessageBox.Show("轉(zhuǎn)換成功!");
      }
      catch (Exception ex)
      {
        MessageBox.Show("ImgToBase64String 轉(zhuǎn)換失敗/nException:" + ex.Message);
      }
    }
    //base64編碼的文本 轉(zhuǎn)為  圖片
    private void button2_Click(object sender, EventArgs e)
    {
      OpenFileDialog dlg = new OpenFileDialog();
      dlg.Title = "選擇要轉(zhuǎn)換的base64編碼的文本";
      dlg.Filter = "txt files|*.txt";
      if (DialogResult.OK == dlg.ShowDialog())
      {
        Base64StringToImage(dlg.FileName);
      }
    }
    //base64編碼的文本 轉(zhuǎn)為  圖片
    private void Base64StringToImage(string txtFileName)
    {
      try
      {
        FileStream ifs = new FileStream(txtFileName, FileMode.Open, FileAccess.Read);
        StreamReader sr = new StreamReader(ifs);
        String inputStr = sr.ReadToEnd();
        byte[] arr = Convert.FromBase64String(inputStr);
        MemoryStream ms = new MemoryStream(arr);
        Bitmap bmp = new Bitmap(ms);
        bmp.Save(txtFileName + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
        //bmp.Save(txtFileName + ".bmp", ImageFormat.Bmp);
        //bmp.Save(txtFileName + ".gif", ImageFormat.Gif);
        //bmp.Save(txtFileName + ".png", ImageFormat.Png);
        ms.Close();
        sr.Close();
        ifs.Close();
        this.pictureBox1.Image = bmp;
        MessageBox.Show("轉(zhuǎn)換成功!");
      }
      catch (Exception ex)
      {
        MessageBox.Show("Base64StringToImage 轉(zhuǎn)換失敗/nException:"+ex.Message);
      }
    }
  }
}

PS:這里再為大家提供幾款比較實用的base64在線編碼解碼工具供大家使用:

BASE64編碼解碼工具:
http://tools.jb51.net/transcoding/base64

在線圖片轉(zhuǎn)換BASE64工具:
http://tools.jb51.net/transcoding/img2base64

Base64在線編碼解碼 UTF-8版:
http://tools.jb51.net/tools/base64_decode-utf8.php

Base64在線編碼解碼 gb2312版:
http://tools.jb51.net/tools/base64_decode-gb2312.php

更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#編碼操作技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計入門教程》及《C#程序設(shè)計之線程使用技巧總結(jié)

希望本文所述對大家C#程序設(shè)計有所幫助。

相關(guān)文章

  • 簡單實現(xiàn)C#異步操作

    簡單實現(xiàn)C#異步操作

    這篇文章主要為大家詳細(xì)介紹了C#簡單實現(xiàn)異步操作的方法,通過BeginInvoke、EndInvoke的方式實現(xiàn)異步編程,感興趣的小伙伴們可以參考一下
    2016-02-02
  • c#冒泡排序算法示例

    c#冒泡排序算法示例

    這篇文章主要介紹了c#冒泡排序算法示例,需要的朋友可以參考下
    2014-04-04
  • C#上位機與三菱PLC通訊的實現(xiàn)步驟(圖文)

    C#上位機與三菱PLC通訊的實現(xiàn)步驟(圖文)

    這篇文章主要介紹了C#上位機與三菱PLC通訊的實現(xiàn)步驟(圖文),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • C#實現(xiàn)撲克游戲(21點)的示例代碼

    C#實現(xiàn)撲克游戲(21點)的示例代碼

    21點又名黑杰克,該游戲由2到6個人玩,使用除大小王之外的52張牌,游戲者的目標(biāo)是使手中的牌的點數(shù)之和不超過21點且盡量大。本文將用C#實現(xiàn)這一經(jīng)典游戲,需要的可以參考一下
    2022-08-08
  • c# 如何用lock解決緩存擊穿

    c# 如何用lock解決緩存擊穿

    這篇文章主要介紹了c# 如何用lock解決緩存擊穿,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-02-02
  • C# Winform實現(xiàn)自定義分頁控件

    C# Winform實現(xiàn)自定義分頁控件

    一些第三方的分頁控件要么就是界面不夠美觀大方,要么就是使用起來感覺很麻煩,所以本文就為大家介紹一下如何利用Winform自定義分頁控件,需要的可以參考一下
    2023-07-07
  • C#連接Oracle數(shù)據(jù)庫的多種方法總結(jié)

    C#連接Oracle數(shù)據(jù)庫的多種方法總結(jié)

    最近小項目當(dāng)中要使用C#來連接Oracle數(shù)據(jù)庫來完成系統(tǒng)的操作,這篇文章主要給大家介紹了關(guān)于C#連接Oracle數(shù)據(jù)庫的多種方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句實例代碼

    C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句實例代碼

    這篇文章主要介紹了C# 啟用事務(wù)提交多條帶參數(shù)的SQL語句實例代碼,需要的朋友可以參考下
    2018-02-02
  • c#中判斷字符串是不是數(shù)字或字母的方法

    c#中判斷字符串是不是數(shù)字或字母的方法

    這篇文章介紹了C#判斷字符串是否數(shù)字或字母的實例,有需要的朋友可以參考一下
    2013-06-06
  • C#?異步多線程入門到精通之Thread篇

    C#?異步多線程入門到精通之Thread篇

    Thread?是?1.0?時代的產(chǎn)物,當(dāng)時?C#?就考慮到了多線程,于是就設(shè)計了?Thread?。其實現(xiàn)在不推薦使用,除非在維護老的項目已經(jīng)用了的。Thread?也是比較雞肋的,有很多缺陷,但也并不是一無是處
    2021-11-11

最新評論