AI智能
改变未来

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

1.将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;}

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

大致的步骤,就是我们首先要获得文件的路径,无论是通过上传控件和文本框,还是手动输入等,只要能获得路径就可以了

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

最后我们就可以从数据库中读取字节,转换成image,或者以流的方式输出图片都可以了(这种一般用于asp.net输入图片)

asp.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赋值就可以了

byte[] bb = SetImageToByteArray(textBox1.Text);System.Drawing.Image img = ReturnPhoto(bb);pictureBox1.Image = img;
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » C#将image中的显示的图片转换成二进制