Base 64 bytes[]Stream間の相互変換
6151 ワード
最近仕事の中で外部のwebserviceサービスにアクセスして画像とファイルを処理して変換する必要があることに出会って、今その中のいくつかのよく使う方法をメモのシーンをします1:webserviceを使って画像の内容を返して、それから処理を行って、便利のため、今base 64文字列の形式を使って伝達して、このように各種の変換に関連して、使用可能なメソッドを記録します.
//
/// bytes stream
///
///
///
///
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;
}
}
///
/// Stream
///
///
///
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;
}
///
/// base64
///
///
///
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;
}