1. 程式人生 > >C#中base64 bytes[] Stream之間的相互轉換以及PDF轉成圖片

C#中base64 bytes[] Stream之間的相互轉換以及PDF轉成圖片

最近工作中遇到需要訪問外部webservice服務對圖片和檔案進行處理和轉換,現在將其中一些經常使用到的方法做一下筆記
場景一:
使用webservice返回圖片內容,然後進行處理,為了方便,現在大多使用base64字串的形式進行傳遞,這樣就涉及到各種轉換,現在將可能使用到的方法進行一個記錄。

// <summary>
        /// 將bytes資料轉換為stream
        /// </summary>
        /// <param name="fileName">要儲存成的檔案路徑</param>
        /// <param name="dataBytes">
要儲存的資料</param>
/// <returns></returns> public static Stream BytesToStream(string fileName, byte[] dataBytes) { if (dataBytes == null) { return null; } //MemoryStream ms = new MemoryStream(dataBytes); using
(FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate)) { fs.Write(dataBytes, 0, dataBytes.Length); return fs; } } /// <summary> /// Stream轉換為檔案 /// </summary> /// <param name="stream"></param>
/// <param name="fileName"></param> public static void StreamToFile(Stream stream, string fileName) { // 把 Stream 轉換成 byte[] byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 設定當前流的位置為流的開始 stream.Seek(0, SeekOrigin.Begin); // 把 byte[] 寫入檔案 FileStream fs = new FileStream(fileName, FileMode.Create); BinaryWriter bw = new BinaryWriter(fs); bw.Write(bytes); bw.Close(); fs.Close(); } public static byte[] Base64ToBytes(string base64Img) { if (!string.IsNullOrEmpty(base64Img)) { byte[] bytes = Convert.FromBase64String(base64Img); return bytes; } return null; } /// <summary> /// base64 轉換為圖片 /// </summary> /// <param name="base64"></param> /// <returns></returns> public static System.Drawing.Bitmap Base64ToImage(string base64) { if (!string.IsNullOrEmpty(base64)) { byte[] bytes = Base64ToBytes(base64); if (bytes == null) return null; System.IO.MemoryStream ms = new MemoryStream(); ms.Write(bytes, 0, bytes.Length); System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms); return bmp; } return null; }

場景二:
客戶通過webservice返回的是一個PDF檔案,需要我們將PDF轉換成圖片(不知道客戶怎麼想的,也沒辦法,只能照辦),查詢資料後,確實有這樣的第三方庫,主要是用到O2S.Components.PDFRender4NET.dll這個庫,具體測試程式碼連結如下
將PDF轉為圖片程式碼 密碼 dxjf