C#将image中的显示的图片转换成二进制

1.将Image图像文件存入到数据库中web

咱们知道数据库里的Image类型的数据是"二进制数据",所以必须将图像文件转换成字节数组才能存入数据库中.数据库

 
        //将本地图片转换成二进制保存起来
        private byte[] SetImageToByteArray(string fileName)
        {
            FileStream fs = null;
            try
            {
                fs = new FileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);
                Bitmap bt = new Bitmap(fs);
                int streamLength = (int)fs.Length;
                byte[] image = new byte[streamLength];
                fs.Read(image, 0, streamLength);

                return image;
            }
            catch (Exception)
            {

                throw;

            }
            finally
            {

                fs.Close();
            }
        }
 

 

 
// 根据文件名(彻底路径)
public  byte[] SetImageToByteArray( string fileName)
    {
        FileStream fs =  new FileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);
         int streamLength = ( int)fs.Length;
         byte[] image =  new  byte[streamLength];
        fs.Read(image,  0, streamLength);
        fs.Close();
         return image;
    }

// 另外,在ASP.NET中经过FileUpload控件获得的图像文件能够经过如下方法
public  byte[] SetImageToByteArray(FileUpload FileUpload1)
    {
        Stream stream = FileUpload1.PostedFile.InputStream;
         byte[] photo =  new  byte[FileUpload1.PostedFile.ContentLength];
        stream.Read(photo,  0, FileUpload1.PostedFile.ContentLength);
        stream.Close();
         return photo;
    }
 

2.从SQL Server数据库读取Image类型的数据,并转换成bytes[]或Image图像文件数组

 
// 将数据库中的Image类型转换成byte[]
         public  byte[] SetImage(SqlDataReader reader)
        {
             return ( byte[])reader[ " Image "]; // Image为数据库中存放Image类型字段
        }

// 将byte[]转换成Image图像类型
// 加载如下命名空间using System.Drawing;/using System.IO;
using System.Data.SqlClient;
    public Image SetByteToImage( byte[] mybyte)
   {
           Image image;
             MemoryStream mymemorystream =  new MemoryStream(mybyte, 0, mybyte.Length);
           image = Image.FromStream(mymemorystream);
            return image; 
    } 
 

这种方式保存图片比较安全安全

大体的步骤,就是咱们首先要得到文件的路径,不管是经过上传控件和文本框,仍是手动输入等,只要能得到路径就能够了asp.net

而后咱们就能够利用上面的方法,将文件资源转换为二进制放到数据库里,数据库字段能够使用image类型,或者字符串,到时候转换下就能够了ide

最后咱们就能够从数据库中读取字节,转换成image,或者以流的方式输出图片均可以了(这种通常用于asp.net输入图片)spa

asp.net输入流的代码以下:.net

 
     protected  void Page_Load( object sender, EventArgs e)
        {
             byte[] bb = SetImageToByteArray( " E:\\regedit.jpg ");
            System.Drawing.Image img = ReturnPhoto(bb);
             // 设定输出文件的类型
            Response.ContentType =  " image/jpg ";
             // 输出图片文件二进制数据
            Response.BinaryWrite(bb);
        }
 

若是是winForm就能够直接经过转换过的image赋值就能够了3d

 

           byte[] bb = SetImageToByteArray(textBox1.Text);             System.Drawing.Image img = ReturnPhoto(bb);             pictureBox1.Image = img;
相关文章
相关标签/搜索