通过网络路径获取的图片 btye 图片流互转

楼主有一个需要用户用的网站要上传图片,图片不保存到网站,而是要专门存放到一个图片服务器上面,于是需要通过byte的形式来传输

之前写的一个本地图片流转于byte互转 后来发现通过网络路径获取的图片这个方法就用不了 后来百度了 换了一个新的写法

 


 

 图片流转成byte数组

1      public byte[] SaveImage(Image image)
2         {
3             MemoryStream ms = new MemoryStream();
4             BinaryFormatter bf = new BinaryFormatter();
5             bf.Serialize(ms, (object)image);
6             ms.Close();
7             return ms.ToArray();
8         }

 

然后byte转成图片流并且保存

 1 //保存图片
 2 var path = "\\Upload\\LINGDAO\\" + DateTime.Now.Date.ToString("yyyy-MM-dd") + "\\";
 3 var serverPath = Server.MapPath("~" + path);//图片路径
 4 if (!Directory.Exists(serverPath))
 5 {
 6       Directory.CreateDirectory(serverPath);//创建文件夹
 7 }
 8       string fileName = Guid.NewGuid().ToString() + ".jpeg";
 9       10       //图片流存储为图片文件
11        MemoryStream ms = new MemoryStream(data, 0, data.Length);
12        BinaryFormatter bf = new BinaryFormatter();
13        object obj = bf.Deserialize(ms);
14        ms.Close();
15        var img=(Image)obj;
16        img.Save(serverPath + fileName, ImageFormat.Jpeg);

需要注意的是在传送个接收的这个byte的数组的时候 要转换的流格式一致才能互转成功 否则就转换出来的东西可以打不开或者无效

posted @ 2017-11-03 17:37  路明非i  阅读(1256)  评论(0编辑  收藏  举报