PDA

View Full Version : سوال: کار با PictureBox و عدم ذخیره تصویر هنگام ترسیم تصویر



Mousavmousab
یک شنبه 17 فروردین 1393, 18:58 عصر
سلام

خیلی جالبه !!!
وقتی یم عکس را توی PictureBox لو می کنم و ذخیره می کنم مشکلی نیست.
ولی وقتی یک عکس ترسیم می کنم و به PictureBox ست می کنم و حالا می خوام ذخیره کنم مشکل داره و ذخیره نمیشه
میگه Object Reference ...



SaveFileDialog sf = new SaveFileDialog();
sf.Filter = "*.bmp|*.bmp";

if (sf.ShowDialog() == System.Windows.Forms.DialogResult.OK)

pictureBox1.Image.Save(sf.Filename, ImageFormat.Bmp);

}


دلیلش چیه؟ چه فرقی است زمانی که یک عکس را لود می کنیم و زمانی که یک عکس را ترسیم می کنیم؟

Mousavmousab
یک شنبه 17 فروردین 1393, 20:12 عصر
خودم حلش کردم.
ابتدا نباید مستقیماٌ روی PictureBox روی فرم طراحی کنی
باید به این صورت عمل کنید.



private void button1_Click(object sender, EventArgs e)
{
save();
SaveFileDialog sf = new SaveFileDialog();
sf.Filter = "*.bmp|*.bmp";
if (sf.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
MessageBox.Show(sf.FileName);
pictureBox1.Image.Save(sf.FileName);
}
}

void save()
{
Bitmap bit = new Bitmap(pictureBox1.Width, pictureBox1.Height);

using (Graphics g = Graphics.FromImage(bit))
{
using (Font f = new Font("tahoma", 20))
{
g.DrawString("this is a test", f, Brushes.Red, new Point(10, 10));
}
}

pictureBox1.Image = bit;
}