1、byte数组与字符串的相互转换
public static byte[] StringToBytes(string text, Encoding encoding)
{
return encoding.GetBytes(text);
}
public static string BytesToString(byte[] bytes, Encoding encoding)
{
return encoding.GetString(bytes);
}
2、byte数组与Stream的相互转换
public static byte[] StreamToBytes(Stream stream)
{
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
stream.Seek(0, SeekOrigin.Begin);//设置当前流的位置为流的开始
return bytes;
}
public Stream BytesToStream(byte[] bytes)
{
return new MemoryStream(bytes);
}
3、byte数组与Image的相互转换
private byte[] ImageToBytes(string filePath)
{
if (!File.Exists(filePath))
{
return new byte[1];
}
using (MemoryStream ms = new MemoryStream())
{
using (Image image = Image.FromFile(filePath))
{
using (Bitmap bmp = new Bitmap(image))
{
bmp.Save(ms, image.RawFormat);
}
}
return ms.ToArray();
}
}
public Image BytesToImage(byte[] buffer)
{
MemoryStream ms = new MemoryStream(buffer);
Image image = System.Drawing.Image.FromStream(ms);
return image;
}
4、byte数组转换成int
public static int BytesToInt32(byte[] data)
{
if (data.Length < 4)
{
return 0;
}
int num = 0;
if (data.Length >= 4)
{
byte[] tempBuffer = new byte[4];
Buffer.BlockCopy(data, 0, tempBuffer, 0, 4);
num = BitConverter.ToInt32(tempBuffer, 0);
}
return num;
}
5、byte数据和Bitmap相互转换
public static Bitmap BytesToBitmap(byte[] bytes)
{
using (MemoryStream stream = new MemoryStream(bytes))
{
return new Bitmap(stream);
}
}
//Bitmap转byte[]
public static byte[] BitmapToBytes(Bitmap bitmap)
{
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, bitmap.RawFormat);
return ms.ToArray();
}
}