base64 bytes[] Stream之间的相互转换

最近工作中遇到需要访问外部webservice服务对图片和文件进行处理和转换,现在将其中一些经常使用到的方法做一下笔记 
场景一: 
使用webservice返回图片内容,然后进行处理,为了方便,现在大多使用base64字符串的形式进行传递,这样就涉及到各种转换,现在将可能使用到的方法进行一个记录。

// <summary>
        /// 将bytes数据转换为stream
        /// </summary>
        /// <param name="fileName">要保存成的文件路径</param>
        /// <param name="dataBytes">要保存的数据</param>
        /// <returns></returns>
        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;
            }

        }
        /// <summary>
        /// Stream转换为文件
        /// </summary>
        /// <param name="stream"></param>
        /// <param name="fileName"></param>
        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;
        }
        /// <summary>
        /// base64 转换为图片
        /// </summary>
        /// <param name="base64"></param>
        /// <returns></returns>
        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;
        }

猜你喜欢

转载自blog.csdn.net/xf_zhen/article/details/80885676