PDA

View Full Version : سوال: مشکل در عکس ها در C#



NasimBamdad
شنبه 21 اردیبهشت 1392, 16:09 عصر
سلام و خسته نباشید

من با کد زیر به وسیله یک OpenDialog یک عکس رو انتخاب می کنم و در یک PictureBox لود می کنم


OpenFileDialog dlg = new OpenFileDialog();

dlg.Title = "عکس بیمار";

if (dlg.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(dlg.FileName);
pictureBox1.ImageLocation = dlg.FileName;
}

dlg.Dispose();

بعد با این کد هم ، اون عکس رو با یک اسم جدید در کنار برنامه هم ذخیره می کنم

pictureBox1.Image.Save(Application.StartupPath + "\\Images\\P-IMG\\" + txtProNet2.Text + ".jpg",ImageFormat.Jpeg);


اگر هم نخواییم برای کسی عکس قرار بدیم یک عکس پیشفرض براش در نظر گرفته میشه . ( یک تک فایل هست که در آدرس زیر قرار داره و اون رو برای کسی که عکس نداره در نظر میگیریم )


Applicaton.StartupPath/images/N0.png

تا اینجا که هیچ . حالا وقتی که میام در قسمت ویرایش بیماران و می خوام یک عکس رو به بیماری اختصاص بدم از کد زیر استفاده می کنم .

یک PictureBox دارم که از کد زیر میام عکس رو در اون لود می کنم


OpenFileDialog dlg = new OpenFileDialog();

dlg.Title = "عکس بیمار";

if (dlg.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(dlg.FileName);
pictureBox1.ImageLocation = dlg.FileName;
dlg.Dispose();
}

dlg.Dispose();


بعد برای ذخیره کردن عکس ( Update بیمار ) از این کد استفاده می کنم



if (File.Exists(Application.StartupPath + "\\Images\\P-IMG\\" + txtProNet1.Text + "" + ".jpg"))
{
File.Delete(Application.StartupPath + "\\Images\\P-IMG\\" + txtProNet1.Text + "" + ".jpg");
pictureBox1.Image.Save(Application.StartupPath + "\\Images\\P-IMG\\" + txtProNet1.Text + ".jpg", ImageFormat.Jpeg);
}
else
{
pictureBox1.Image.Save(Application.StartupPath + "\\Images\\P-IMG\\" + txtProNet1.Text + ".jpg", ImageFormat.Jpeg);
}




مشکل اصلی من این هست که وقتی که بیماری عکسی نداره و فایل عکسی براش تخصیص داده نشده به راحتی براش یک عکس قرار می دم و عکس براش ست میشه . اما وقتی که بخوام یک بیمار که عکس داره رو عکسش رو ویرایش کنم مشکل ایچاد میشه و اررور های مبنی بر اینکه از اون عکس داره استفاده می شود و یا اون فایل باز هست میاد .

به نظر شما کجای کارم اشتباهه ؟! آیا راه اصولی در نظر گرفتم یا اشتباه ؟!

NasimBamdad
یک شنبه 22 اردیبهشت 1392, 08:45 صبح
68 بازدید و جوابی نیست . واقعا راه حلی براش نیست !؟

NasimBamdad
دوشنبه 23 اردیبهشت 1392, 09:32 صبح
راه حلش اینه ! می ذارم دوستان استفاده کنند

کد زیر رو قبل و بعد از هرجا که با فایل عکس کار می کنید قرار بدید ، مشکل حل میشه


GC.Collect();