private void Save_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.InitialDirectory = "D:\\";
saveFileDialog1.Filter = "*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf";
saveFileDialog1.Title = "保存图像";
saveFileDialog1.ShowDialog();
if (saveFileDialog1.FileName != "")
{
string temp = saveFileDialog1.FileName;
pictureBox1.Image.Save(temp);
//这里出错,我该怎么写使其可以达到保存
}
}
这个测试了没有问题
如果只是这句错的话pictureBox1.Image.Save(temp);
那么可能是pictureBox1.Image是为空的
补充:
private void Open_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
}
这个事件应该写的有问题,只要pictureBox1有东西应该就没问题呀
比如之前加个openFileDialog1.ShowDialog();我测试过了可以的
Graphics g = Graphics.FromImage((Image)bmp);
bmp 已经与pictureBox1没有关系了,pictureBox1还显示什么
没分,晕倒。加分的话,我再跟你说。不然太没意思了。
你的B/S结构的,还是C/S的。
B/S可以直接用上传控件实现。
C/S更简单。
我给一个代码给你。
System.Windows.Forms.OpenFileDialog
ofdg=new
OpenFileDialog();
ofdg.Filter="Image
Files(*.bmp;*.jpg;*.gif)|*.bmp;*.jpg;*.gif";
ofdg.ShowDialog();
if(ofdg.ShowDialog()
==
DialogResult.OK)
{
Stream
stream=ofdg.OpenFile();
int
length=(int)stream.Length;
buff=new
byte[length];
stream.Read(buff,0,length);
this.photo.Image=new
Bitmap(stream);
}
以上代码放在System.Windows.Forms.PictureBox这个控件的Click事件里。
这个控件可以实现选择图片的效果,代码中是把图片读成比特流的格式,然后插入数据中。
其实是一样的,那你就把图片写到盘里面去咯,不过大多C/S程序最好不要写在本地盘里,而是写到服务器盘上,这样用户删掉了就没有了。呵呵。
如果是B/S的写到服务器上是可以的。
晕,你Save的路径就是你saveFileDialog读取的路径,
就是说你要把文件存在同一个地方,当然要出错了
你要在save里面写上你要保存的路径
比如Save(@“E:\”+saveFileDialog1.FileName);
这个不太熟,你将pictureBox1.Image.Save(temp)后面的temp先改成固定文件名,比如"c:\\sample.bmp"试试看行不行,如果可以的话,temp中的\是不是要先替换成\\
你要给他一个文件名filename单单只是路径而已