首页 > 代码库 > 图片转二进制流存储到数据库
图片转二进制流存储到数据库
1.数据库名为Demo,数据结构如图
2.后台代码如下
class Program { public static readonly string conStr = "Data Source = .;Initial Catalog = Demo;Integrated Security = SSPI;"; static void Main(string[] args) { #region 图片转为二进制流写进数据库 byte[] buffer = ImageToByte(@"G:\2.jpg"); if (PushDataBase(buffer) > 0) { Console.WriteLine("OK"); Console.Read(); } #endregion #region 二进制流转图片 //byte[] gBuffer = GetDataBase(3); //ByteToImage(gBuffer); //Console.WriteLine("OK"); //Console.Read(); #endregion } /// <summary> /// 图片转二进制流 /// </summary> /// <param name="imgPath">图片路径</param> /// <returns></returns> public static byte[] ImageToByte(string imgPath) { Image image = Image.FromFile(imgPath); using (MemoryStream ms = new MemoryStream()) { image.Save(ms, image.RawFormat); byte[] buffer = new byte[ms.Length]; ms.Seek(0, SeekOrigin.Begin); ms.Read(buffer, 0, buffer.Length); return buffer; } } /// <summary> /// 字节流转图片 /// </summary> /// <param name="buffer">图片二进制流</param> public static void ByteToImage(byte[] buffer) { MemoryStream ms = new MemoryStream(); ms.Write(buffer, 0, buffer.Length); Image img = Image.FromStream(ms); string file = "mypicture2"; if (img.RawFormat == ImageFormat.Jpeg) { file += ".jpg"; } else if (img.RawFormat == ImageFormat.Png) { file += ".png"; } else { file += ".jpg"; } File.WriteAllBytes(file, buffer); } /// <summary> /// 写进数据库 /// </summary> /// <param name="buffer">图片二进制流</param> /// <returns></returns> public static int PushDataBase(byte[] buffer) { using (SqlConnection conn = new SqlConnection(conStr)) { using (SqlCommand com = new SqlCommand()) { com.Connection = conn; conn.Open(); com.CommandText = "insert into ImageData values(@image)"; com.Parameters.Add("@image", SqlDbType.Image).Value =http://www.mamicode.com/ buffer; return com.ExecuteNonQuery(); } } } /// <summary> /// 从数据库中读取 /// </summary> /// <returns></returns> public static byte[] GetDataBase(int id) { using (SqlConnection conn = new SqlConnection(conStr)) { using (SqlCommand com = new SqlCommand()) { com.Connection = conn; conn.Open(); com.CommandText = "select ImageByte from ImageData where Id=@id"; com.Parameters.Add("@id", SqlDbType.Int).Value =http://www.mamicode.com/ id; using (SqlDataReader reader = com.ExecuteReader()) { if (reader.Read()) { return (byte[])reader[0]; } } } } return null; } }
图片转二进制流存储到数据库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。