急问在一个按钮事件中画的图形如何在另外一个按钮事件中保存为bmp文件???

garrymj 2004-05-05 08:13:35
我在一个按钮事件中建了个bitmap,并在它的graphics上画图,现在想在另外一个按钮事件中把它保存下来,存为bmp或其它的图片格式,我每次存下来的都是一张黑色的图,没有我画的任何线条,不知道是为什么,请高手赐教阿!!最好能贴代码,谢谢了!!!!!
...全文
19 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
BlueLevin 2004-05-06
你把图形对像的变量放在程序的公共部分,就是在所有的函数体外部.当用一个按钮画好后,图形的值已存入变量.这时你用另一个按钮直接将它存入硬盘就行了.
  • 打赏
  • 举报
回复
garrymj 2004-05-05
能举个例子吗??是不是鼠标点过的每个位子都要保存吗?另外byte[] mybyte=new mybyte[length],该怎么用呢?
  • 打赏
  • 举报
回复
greatsft 2004-05-05
写你的画图程序呀,
比如要保存一些鼠标位置呀,因为通过上一鼠标位置来连接下一个位置的图象
  • 打赏
  • 举报
回复
garrymj 2004-05-05
那在绘图的那个事件中需要写些什么呢???
  • 打赏
  • 举报
回复
greatsft 2004-05-05
SaveFileDialog savefile=new SaveFileDailog();
string filename=savefile.FileName;
FileStream fs=new FileStream(filename,FileAccess.Read,FileMode.Create);
BinaryWriter bw=new BinaryWriter(fs,System.Text.Encoding.ASCII);
bw.Write(mybyte);
bw.Flush();
bw.Close();
fs.Close();
  • 打赏
  • 举报
回复
garrymj 2004-05-05
能再说的详细一点吗?因为我是新手,对BinaryWriter、stream什么的都不是很熟,谢谢阿
  • 打赏
  • 举报
回复
greatsft 2004-05-05
那就是我说的方法呀比如有两个事件,其实一个是savebtn_Click(object obj,EventArgs ea)
{

... //我上述说的方法
}
savebtn_Click是处理保存的
  • 打赏
  • 举报
回复
garrymj 2004-05-05
upupupupup
  • 打赏
  • 举报
回复
garrymj 2004-05-05
我是想全部画完再保存,就是有一个事件处理画图,另一个事件处理保存,有没有简单的办法实现呢?
  • 打赏
  • 举报
回复
greatsft 2004-05-05
to 楼主:
你是要没画一笔都保存吗?不是全部画完再保存?
看来我是误会你意思了,能把你的意思再解释下吗?
  • 打赏
  • 举报
回复
garrymj 2004-05-05
to wangsaokui:你说的是在一个事件中的吧?那样是可以的,可我想在两个不同事件中实现它,不知道怎么实现呢???
to greatsft:那如果我要用鼠标画图岂不是要每画一笔就要存到缓冲区阿?有没有方法可以把bitmap中graphics的当前状态取过来啊?
  • 打赏
  • 举报
回复
zxfox 2004-05-05
UP
  • 打赏
  • 举报
回复
greatsft 2004-05-05
用二进制读取这个位图,即用
BinaryWriter类来读取
把读取的这个内容存放到一个缓冲区数组比如byte[] mybyte=new mybyte[length];
然后用FileStream把缓冲区内容读到你选择的文件下,比如:
SaveFileDialog savefile=new SaveFileDialog();
string filename=savefile.FileName; //保存到的文件名
FileStream fs=new FileStream(filename,FileAccess.Read,FileMode.CreateNew);
fs.Write(mybyte); //把缓冲区的内容读到文件中
fs.Flush();
fs.Close();
////////////////////////////////////

wish u good luck
Greatsft
  • 打赏
  • 举报
回复
wangsaokui 2004-05-05
System.Drawing .Graphics g;

System.Drawing .Image b = new System.Drawing .Bitmap (200,100);
g = System.Drawing .Graphics.FromImage(b);

System.Drawing .Pen p = new System.Drawing .Pen(System.Drawing .Color .Blue ,3);
g.DrawEllipse ( p,50,25,80,40);
b.Save ("dog.bmp",System.Drawing .Imaging .ImageFormat.Bmp );
g.dispose();
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.7w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
申请成为版主
帖子事件
创建了帖子
2004-05-05 08:13
社区公告

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