zoukankan      html  css  js  c++  java
  • WCF传输图片解决方案

    图片无法序列化后传输,但我们可以将图片转二进制字符串传输。然后在服务端将二进制字符串转图片。

    将图片转字符串的例子:

            private byte[] BmpToJpegBuff(Image img)

            {

                ImageConverter converter = new ImageConverter();

                byte[] bmpSrc = (byte[])converter.ConvertTo(img, typeof(byte[]));

     

                MemoryStream ms = new MemoryStream(bmpSrc);

                MemoryStream msjpg = new MemoryStream();

                Bitmap myBitmap = new Bitmap(ms);

                myBitmap.Save(msjpg,ImageFormat.Jpeg);

                byte[] bjpeg = msjpg.GetBuffer();

     

                return bjpeg;

            }

     

                byte[] imgByte=BmpToJpegBuff(image);

     

                string imgString = String.Join(",", Array.ConvertAll(imgByte, (Converter<byte, string>)Convert.ToString));

     

    字符串转图片的例子。

     

                string[] imgArr = imgData.Split(new char[] { ',' });

                byte[] bty = Array.ConvertAll<string, byte>(imgArr, delegate(string s) { return byte.Parse(s); });

     

                Bitmap bmp = new Bitmap(FromBytes(bty));

     

     

            /// 

            /// 字节转图片

            /// 

            public Image FromBytes(byte[] bs)

            {

                if (bs == null) return null;

                try

                {

                    MemoryStream ms = new MemoryStream(bs);

                    Image returnImage = Image.FromStream(ms);

                    ms.Close();

                    return returnImage;

                }

                catch { return null; } 

    Powered By D&J (URL:http://www.cnblogs.com/Areas/)
  • 相关阅读:
    SAS学习笔记38 SAS Comments注释语句
    SAS学习笔记37 宏程序中parmbuff选项
    SAS学习笔记36 二分类logistic回归
    SAS学习笔记34 指针控制
    SAS学习笔记33 格式修饰符
    SAS学习笔记31 SAS随机分组方法及实现
    angular的websocket使用
    angularjs 使用ui.router 去掉url中的#号
    angular全局确认框confirm
    angular 请求$http载入画面Loading
  • 原文地址:https://www.cnblogs.com/Areas/p/2174760.html
Copyright © 2011-2022 走看看