问题描述
C#如何实现将图像保存到内存,再读取?image.saveas();怎么写啊?还有读取的时候怎么弄?
解决方案
解决方案二:
Image的Save方法有重载,可以保存到流,加载可以Imageimg=Image.FromStream(stream);
解决方案三:
引用1楼的回复:
Image的Save方法有重载,可以保存到流,加载可以C#codeImageimg=Image.FromStream(stream);
写到流里面要怎样判断图片是否存在呢?完了之后需要对流做释放之类的处理吗?
解决方案四:
释放流:ns.Close()//不然其他用户无法处理当前图片
解决方案五:
引用3楼的回复:
释放流:ns.Close()//不然其他用户无法处理当前图片
要是用MemoryStream整个过程应该是怎样的?刚接触,能否实例分析一下啊?谢谢了
解决方案六:
理解MemoryStream,byte[],Image
解决方案七:
截取当前窗体工作区图像,保存至内存//截取当前窗体图像BitmapbitFormImg=newBitmap(this.Width,this.Height);this.DrawToBitmap(bitFormImg,newRectangle(0,0,this.Width,this.Height));intborder=(this.Width-this.ClientSize.Width)/2;//边框宽度intcaption=(this.Height-this.ClientSize.Height)-border;//标题栏高度//截取签字区域图像(去边框、标题栏)BitmapbitSignatureImg=bitFormImg.Clone(newRectangle(border,caption,this.ClientSize.Width,this.ClientSize.Height),System.Drawing.Imaging.PixelFormat.Format24bppRgb);//创建内存流MemoryStreamMs=newMemoryStream();//将图像保存至内存流bitSignatureImg.Save(Ms,ImageFormat.Bmp);bitFormImg.Dispose();bitSignatureImg.Dispose();byte[]img=newbyte[Ms.Length];Ms.Position=0;Ms.Read(img,0,Convert.ToInt32(Ms.Length));Ms.Close();stringresult=Convert.ToBase64String(img);
读取内存中图像///<summary>///将By数组转为Image数据///</summary>///<paramname="bytes"></param>///<returns></returns>publicImageBytesToImage(byte[]bytes){MemoryStreamms=newMemoryStream(bytes);Imageimg=Image.FromStream(ms);//图片加文字水印//ImageWaterMark(img);returnimg;}
显示在pictureBox中stringimage=图片二进制数据字符串。;//第一个方法这里已经把图片二进制数据存储为字符串了。//stringresult=Convert.ToBase64String(img);byte[]by=Convert.FromBase64String(image);//绑定图片this.pictureBox1.Image=BytesToImage(by);
解决方案八:
谢谢1!!引用6楼的回复:
截取当前窗体工作区图像,保存至内存C#code//截取当前窗体图像BitmapbitFormImg=newBitmap(this.Width,this.Height);this.DrawToBitmap(bitFormImg,newRectangle(0,0,this.Width,this.Height));intborder=(this.Width……
解决方案九:
流啊亲,二进制数的有木有啊亲,c#是与数据库一样转成二进制数的有木有!!!!