当前位置: 代码迷 >> C# >> 关于 img byte[] 和 0x的有关问题
  详细解决方案

关于 img byte[] 和 0x的有关问题

热度:116   发布时间:2016-05-05 02:39:54.0
关于 img byte[] 和 0x的问题
       
//img 转byte 
public static byte[] ImageToBytes(Image image)
        {
            ImageFormat format = image.RawFormat;
            using (MemoryStream ms = new MemoryStream())
            {
                if (format.Equals(ImageFormat.Jpeg))
                {
                    image.Save(ms, ImageFormat.Jpeg);
                }
                else if (format.Equals(ImageFormat.Png))
                {
                    image.Save(ms, ImageFormat.Png);
                }
                else if (format.Equals(ImageFormat.Bmp))
                {
                    image.Save(ms, ImageFormat.Bmp);
                }
                else if (format.Equals(ImageFormat.Gif))
                {
                    image.Save(ms, ImageFormat.Gif);
                }
                else if (format.Equals(ImageFormat.Icon))
                {
                    image.Save(ms, ImageFormat.Icon);
                }
                byte[] buffer = new byte[ms.Length];
                ms.Seek(0, SeekOrigin.Begin);
                ms.Read(buffer, 0, buffer.Length);
                return buffer;
            }
        }



//byte 转16进制  然后insert into ‘’ 到数据库
public static String bytes2HexString(byte[] b)
        {
            string str = BitConverter.ToString(b, 0).Replace("-", "");
            string hexStr = "0x" + str;
            return hexStr;
        }

数据库中 photo是image类型的
但是 取出来的时候 model.photo 是byte[]类型的  而且值不一样。
该怎么做?不用SqlParameter
------解决思路----------------------
public static byte[] ImageToBytes(Image image)
你自己返回的明明是byte[],倒回去就行了
------解决思路----------------------
建议你查下数据类型之间的对应关系,数据库的image不等于c#的image,数据库读出来是byte[],需要进行转化
------解决思路----------------------
数据库中的image类型就是二进制类型,没必要转成16进制,转了反而错了.
  相关解决方案