C#实现的图片、string相互转换类分享
C#中,Image为源自Bitmap和Metafile的类提供功能的抽象基类,也就是说更通用,当我们用Image.FromFile("xxx")时创建出来的是Image的某个派生类实体,所以我用Image作为参数,而不是Bitmap之类的。
图片在于string转换的时候中间借助于MemorySteam和Byte数组,下面是我写的FormatChange类,里面两个互相转换的过程。当然这里面也就包含了图片与Byte[]数组的相互转换喽。
classFormatChange { publicstaticstringChangeImageToString(Imageimage) { try { MemoryStreamms=newMemoryStream(); image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); byte[]arr=newbyte[ms.Length]; ms.Position=0; ms.Read(arr,0,(int)ms.Length); ms.Close(); stringpic=Convert.ToBase64String(arr); returnpic; } catch(Exception) { return"Failtochangebitmaptostring!"; } } publicstaticImageChangeStringToImage(stringpic) { try { byte[]imageBytes=Convert.FromBase64String(pic); //读入MemoryStream对象 MemoryStreammemoryStream=newMemoryStream(imageBytes,0,imageBytes.Length); memoryStream.Write(imageBytes,0,imageBytes.Length); //转成图片 Imageimage=Image.FromStream(memoryStream); returnimage; } catch(Exception) { Imageimage=null; returnimage; } } }