C#中,Image為源自 Bitmap 和 Metafile 的類提供功能的抽象基類,也就是說更通用,當我們用Image.FromFile("xxx")時創建出來的是Image的某個派生類實體,所以我用Image作為參數,而不是Bitmap之類的。
圖片在于string轉換的時候中間借助于MemorySteam和Byte數組,下面是我寫的FormatChange類,里面兩個互相轉換的過程。當然這里面也就包含了圖片與Byte[]數組的相互轉換嘍。
class FormatChange { public static string ChangeImageToString(Image image) { try { MemoryStream ms = new MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); byte[] arr = new byte[ms.Length]; ms.Position = 0; ms.Read(arr, 0, (int)ms.Length); ms.Close(); string pic = Convert.ToBase64String(arr); return pic; } catch (Exception) { return "Fail to change bitmap to string!"; } } public static Image ChangeStringToImage(string pic) { try { byte[] imageBytes = Convert.FromBase64String(pic); //讀入MemoryStream對象 MemoryStream memoryStream = new MemoryStream(imageBytes, 0, imageBytes.Length); memoryStream.Write(imageBytes, 0, imageBytes.Length); //轉成圖片 Image image = Image.FromStream(memoryStream); return image; } catch (Exception) { Image image = null; return image; } } }
新聞熱點
疑難解答