.Net下二进制格局的公文(图片)的储存与读取(原创)

   
朋友们,我欣赏给园子的恋人来来些不难实用的东西。那是自身一向作风。别的我补偿表达那篇小说是本身在平常的花色中收集而来,算是一些小的技能,希望能给爱人们带来收获,假若有哪些说的不规范的地方,还期待恋人们能指出合理的见识。上面切入宗旨:
探望题目,二进制方式的文件是很广的。那里我最主要研讨图片以二进制方式的多少读取和仓储。
.Net下图片的普遍存储与读取凡是有以下两种:
储存图片:以二进制的方式储存图片时,要把数据库中的字段设置为Image数据类型(SQL
Server),存储的多寡是Byte[].
1.参数是图表路径:再次回到Byte[]类型:

图片 1 public byte[] GetPictureData(string imagepath)
图片 2图片 3        图片 4{
图片 5图片 6            /**/////根据图片文件的门径使用文件流打开,并保存为byte[]   
图片 7            FileStream fs = new FileStream(imagepath, FileMode.Open);//可以是此外重载方法 
图片 8            byte[] byData = new byte[fs.Length];
图片 9            fs.Read(byData, 0, byData.Length);
图片 10            fs.Close();
图片 11            return byData;
图片 12        }

2.参数类型是Image对象,再次回到Byte[]类型:

图片 13 public byte[] PhotoImageInsert(System.Drawing.Image imgPhoto)
图片 14图片 15        图片 16{
图片 17            //将Image转换成流数据,并保存为byte[]   
图片 18            MemoryStream mstream = new MemoryStream();
图片 19            imgPhoto.Save(mstream, System.Drawing.Imaging.ImageFormat.Bmp);
图片 20            byte[] byData = new Byte[mstream.Length];
图片 21            mstream.Position = 0;
图片 22            mstream.Read(byData, 0, byData.Length);
图片 23            mstream.Close();
图片 24            return byData;
图片 25        }

好了,那样经过地方的点子就足以把图纸转换成Byte[]对象,然后就把这些目标保存到数据库中去就完结了把图纸的二进制格式保存到数据库中去了。上面我就琢磨怎么着把数据库中的图片读取出来,实际上那是一个相反的历程。
读取图片:把相应的字段转换成Byte[]即:Byte[]
bt=(Byte[])XXXX
1.参数是Byte[]花色,再次来到值是Image对象:

图片 26 public System.Drawing.Image ReturnPhoto(byte[] streamByte)
图片 27图片 28        图片 29{
图片 30            System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
图片 31            System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
图片 32            return img;
图片 33        }

2.参数是Byte[]
类型,没有重返值,那是针对asp.net中把图纸从出口到网页上(Response.BinaryWrite)

图片 34 public void WritePhoto(byte[] streamByte)
图片 35图片 36        图片 37{
图片 38            // Response.ContentType 的默许值为默许值为“text/html”
图片 39            Response.ContentType = “image/GIF”;
图片 40            //图片输出的花色有: image/GIF  image/JPEG
图片 41            Response.BinaryWrite(streamByte);
图片 42        }

补充:
本着Response.ContentType的值,除了针对图片的种类外,还有任何的品类:

图片 43            Response.ContentType = “application/msword”;
图片 44            Response.ContentType = “application/x-shockwave-flash”;
图片 45            Response.ContentType = “application/vnd.ms-excel”;

此外可以本着分歧的格式,用不一样的输出类型以契合区其余品种:

图片 46  switch (dataread(“document_type”))
图片 47图片 48            图片 49{
图片 50                case “doc”:
图片 51                    Response.ContentType = “application/msword”;
图片 52                case “swf”:
图片 53                    Response.ContentType = “application/x-shockwave-flash”;
图片 54                case “xls”:
图片 55                    Response.ContentType = “application/vnd.ms-excel”;
图片 56                case “gif”:
图片 57                    Response.ContentType = “image/gif”;
图片 58                case “Jpg”:
图片 59                    Response.ContentType = “image/jpeg”;
图片 60            }

相关文章