C#如何实现将图像保存到内存,再读取?

Pillar_Leung 2012-03-29 11:03:34
C#如何实现将图像保存到内存,再读取?

image.saveas();怎么写啊?
还有读取的时候怎么弄?
...全文
2512 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Pillar_Leung 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

释放流:ns.Close()//不然其他用户无法处理当前图片
[/Quote]

要是用 MemoryStream 整个过程应该是怎样的?刚接触,能否实例分析一下啊?谢谢了
CqCoder 2012-03-29
  • 打赏
  • 举报
回复
释放流:ns.Close()//不然其他用户无法处理当前图片
Pillar_Leung 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

Image的Save方法有重载,可以保存到流,加载可以
C# code

Image img = Image.FromStream(stream);
[/Quote]

写到流里面要怎样判断图片是否存在呢? 完了之后需要对流做 释放之类的处理吗?
bdmh 2012-03-29
  • 打赏
  • 举报
回复
Image的Save方法有重载,可以保存到流,加载可以

Image img = Image.FromStream(stream);
  • 打赏
  • 举报
回复
流啊亲,二进制数的有木有啊亲,
c#是与数据库一样转成二进制数的有木有!!!!
Pillar_Leung 2012-03-29
  • 打赏
  • 举报
回复
谢谢 1!![Quote=引用 6 楼 的回复:]

截取当前窗体工作区图像,保存至内存
C# code

//截取当前窗体图像
Bitmap bitFormImg = new Bitmap(this.Width, this.Height);
this.DrawToBitmap(bitFormImg, new Rectangle(0, 0, this.Width, this.Height));
int border = (this.Width ……
[/Quote]
taylor-yang 2012-03-29
  • 打赏
  • 举报
回复
截取当前窗体工作区图像,保存至内存

//截取当前窗体图像
Bitmap bitFormImg = new Bitmap(this.Width, this.Height);
this.DrawToBitmap(bitFormImg, new Rectangle(0, 0, this.Width, this.Height));
int border = (this.Width - this.ClientSize.Width) / 2;//边框宽度
int caption = (this.Height - this.ClientSize.Height) - border;//标题栏高度

//截取签字区域图像(去边框、标题栏)
Bitmap bitSignatureImg = bitFormImg.Clone(new Rectangle(border, caption, this.ClientSize.Width, this.ClientSize.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb);
//创建内存流
MemoryStream Ms = new MemoryStream();
//将图像保存至内存流
bitSignatureImg.Save(Ms, ImageFormat.Bmp);
bitFormImg.Dispose();
bitSignatureImg.Dispose();

byte[] img = new byte[Ms.Length];
Ms.Position = 0;
Ms.Read(img, 0, Convert.ToInt32(Ms.Length));
Ms.Close();
string result = Convert.ToBase64String(img);


读取内存中图像

/// <summary>
/// 将By数组转为Image数据
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public Image BytesToImage(byte[] bytes)
{
MemoryStream ms = new MemoryStream(bytes);
Image img = Image.FromStream(ms);
//图片加文字水印
//ImageWaterMark(img);
return img;
}


显示在pictureBox中


string image = 图片二进制数据字符串。;

//第一个方法这里已经把图片二进制数据存储为字符串了。
//string result = Convert.ToBase64String(img);

byte[] by = Convert.FromBase64String(image);
//绑定图片
this.pictureBox1.Image = BytesToImage(by);


绿领巾童鞋 2012-03-29
  • 打赏
  • 举报
回复
理解MemoryStream ,byte[],Image

111,104

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧