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;
}
}
}