最近把套接字发送图片功能完成了,其间如何发送图片及遇到了很多问题,在此将其列出以作参考:
发送图片思路:获得图片路径,然后将路径读取成字节流组,接下来把图片转换成base64的字符串,然后将这个base64的字符串通过JsonConvert序列化(其实这里没必要序列化,主要是服务器接收图片的字节流时无法确定该字节流大小所以一般会给一个10000+的大小(目前不考虑图片分组发送),但是这样很容易让规定的字节流组很多浪费,所以一开始就base64将图片里面有0的字节也变成字符串然后序列化成字节流组发送,这样服务器接收的字节流组的有效信息没有0的,然后此时就可以放心的把自己规定的10000+的大小字节组浪费的部分全部remove 0,然后移除后的字节流组也就全是有效信息了),然后服务器接收的字节流组先把它反序列化,然后frombase64成字节流组(这是真正的图片的流信息),接着
MemoryStream SavaImg = new MemoryStream();//实例化内存流
SavaImg.Write(ContentByte, 0, ContentByte.Length);//将图片字节组(ContenByte)从头到尾放进这个内存流中
SavaImg.Position = 0;//令读取位置回到0,防止之后读取值错误
Bitmap bitmap = new Bitmap(SavaImg);//然后把该内存流放进bitmap里面
Clipboard.SetDataObject(bitmap, false, 5, 10);//将图片的流信息放入剪贴板&#