2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > C#将image中的显示的图片转换成二进制

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

时间:2023-04-26 16:57:49

相关推荐

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

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

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

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

View Code

//将本地图片转换成二进制保存起来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();}}

View Code //根据文件名(完全路径)

publicbyte[]SetImageToByteArray(stringfileName)

{

FileStreamfs=newFileStream(fileName, FileMode.Open, System.IO.FileAccess.Read, FileShare.ReadWrite);

intstreamLength=(int)fs.Length;

byte[]image=newbyte[streamLength];

fs.Read(image,0,streamLength);

fs.Close();

returnimage;

}

//另外,在中通过FileUpload控件得到的图像文件可以通过以下方法

publicbyte[]SetImageToByteArray(FileUploadFileUpload1)

{

Streamstream=FileUpload1.PostedFile.InputStream;

byte[]photo=newbyte[FileUpload1.PostedFile.ContentLength];

stream.Read(photo,0,FileUpload1.PostedFile.ContentLength);

stream.Close();

returnphoto;

}

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

View Code //将数据库中的Image类型转换成byte[]

publicbyte[]SetImage(SqlDataReaderreader)

{

return(byte[])reader["Image"];//Image为数据库中存放Image类型字段

}

//将byte[]转换成Image图像类型

//加载以下命名空间usingSystem.Drawing;/usingSystem.IO;

usingSystem.Data.SqlClient;

publicImageSetByteToImage(byte[]mybyte)

{

Imageimage;

MemoryStreammymemorystream=newMemoryStream(mybyte,0,mybyte.Length);

image=Image.FromStream(mymemorystream);

returnimage;

}

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

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

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

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

输入流的代码如下:

View Code protectedvoidPage_Load(objectsender,EventArgse)

{

byte[]bb=SetImageToByteArray("E:\\regedit.jpg");

System.Drawing.Imageimg=ReturnPhoto(bb);

//设定输出文件的类型

Response.ContentType="image/jpg";

//输出图片文件二进制数据

Response.BinaryWrite(bb);

}

如果是winForm就可以直接通过转换过的image赋值就可以了

View Code byte[]bb=SetImageToByteArray(textBox1.Text);

System.Drawing.Imageimg=ReturnPhoto(bb);

pictureBox1.Image=img;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。