+4 امتیاز
سلام دوستان من میخوام عکس رو از طریف open file dilog از کاربر بگیرم و بعد در یک پوشه کنار پروژه عکس ذخیره کنم و بعد آدرس (مسیر ) عکس را در دایتا بیس ذخیره کنم و بعد بتونم اون عکس رو در آینده و از روی هر کامپیوتری به picturebox پاس بدم

کاملا مشخصه ولی مشکل من در این هست که وقتی میخوام آدرس ذخیره کنم آدرس کامل ذخیره میشه

 

مثلا اگر برنامه از درایو D  باز بشه آدرس هم با مسیر  D  ذخیره میشه

 

ممنون میشم راهنمایی کنید

1 پاسخ

+4 امتیاز

سلام .... امیدوارم  آموزش زیر مفید باشه . آموزش های زیر رو گام به گام ادامه بده مشکلت حل میشه .

1- ابتدا باید به مسیر اجرایی پروژه رفت (bin > debug )  و سپس باید دایرکتوری برای ذخیره ی عکس تشکیل داد .

    به طور مثال دایرکتوری با نام : Picture ،در پوشه ی debuge  داریم .

2- سپس یک  Button و picturebox  به فرم اضافه می کنیم . برای هر کدام به صورت زیر خاصیت نامی مینویسیم .

    در اینجا : Button >browser    ، picutrebox > pic

3- بر روی دکمه ی browser ، کلیک کرده و کدهای زیر را می نویسیم .

 

 private void browser_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog ofd = new OpenFileDialog();
                ofd.Filter = "(*.*)|*.*";
                ofd.Title = "تصویرانتخاب شود ";

                if (ofd.ShowDialog() == DialogResult.OK)
                {

                    pic.load(ofd.FileName);

                }
            }
            catch
            {

                MessageBox.Show("فایل انتخابی غیر قابل دسترس است ");

            }
        }

توضیح کد بالا :

در خط 6 : به کار بر اجازه داده می شود که هر فایلی رو با هر پسوندی انتخاب کند . در این خط کد :(*.*) ، برای نمایش تمامی فایل ها در Browser  و  *.* ، برای ذخیره سازی فایل با پسوند مورد نظر .

در غیر این صورت اگر می خواهید تنها فایل هایی با پسوند خاص دریافت شود، مانند نمونه کد را وارد کنید .

ofd.Filter="(*.jpg)|*.jpg";

از شرط if ، برای کنترل رویداد استفاده کردیم . در کد بالا گفته شده که اگر کاربر برروی ok کلیک کرد ، کد های موجود در بلاک داده if را اجرا کن .

توجه : همان طور که در کد بالا مشاهده می کنید ما از دستور try و catch استفاده کرده ایم . چرا ؟

به این دلیل که اگر کاربر فایلی به غیر از عکس انتخاب کرد ، برنامه با error مواجه نشه . به عبارتی دیگر از این دستور برای کنترل خطا استفاده می شود .

4 - یک Button دیگر به برنامه اضافه می کنیم . خاصیت Name آن را برابر با Save قرار می دهیم . بر روی آن دوبار کلیک کنید و کد زیر را وارد نمایید . ( عملیات ذخیره سازی )

 private void BtnSave_Click(object sender, EventArgs e)
        {

            pictureBox1.Image.Save(Application.StartupPath + "\\Picture\\ " + tbl.ID.Tostring() + ".jpg");

        }

توضیح کد بالا :

همان طور که مشاهده می کنید ، Application.StartupPath ، به مسیر اجرایی پروژه اشاره دارد . و \\Picture\\ به دایرکتوری که در فایل Debug ایجاد کرده ایم اشاده دارد .

tbl.ID.Tostring ، از این کد برای ذخیره سازی همراه با شناسه مورد نظر بکار می رود . که این دلبخواهی است .

".jpg" ،سرانجام فایل با این پسوند ذخیره میشود . می توان این پسوند را نیز تغییر داد .

 

برای بارگذاری اطلاعات در فرم دوم ( به عبارتی وقتی بر روی هر سطر از ستون دیتاگرید کلیک شد اطلاعات مورد نظر در فرم بعدی نشان داده شود ) :

1-خوب حالا در فرم جاری یک دکمه ی دیگر به برنامه اضافه می کنیم و خاصیت Name آن را برابر با btnShow قرار می دهیم.

2- در این مرحله من فرم جدیدی به برنامه اضافه می کنیم  و خاصیت Name آن را برابر با form_show  قرار می دهیم  . در این فرم به دلخواه lable و picturebox درج میکنیم  تا اطلاعات رو به طور دلخواه در آن ثبت کنیم . توجه داشته باشید که باید خاصیت Modifiers آن ها را برابر با public قرار دهیم تا به آن ها دسترسی عمومی داشته باشیم .

3 - بر روی دکمه ی btnSave (که در فرم قبلی ایجاد کرده ایم ) دوبار کلیک می کنیم و مانند نمونه کد های زیر را وارد می نماییم:

private void btnSave_Click(object sender, EventArgs e)
        {
           frmshow frmshow = new frmshow();
           frmshow.label1.Text=dataGridView1.CurrentRow.Cells["ID"].Value.ToString();
           frmshow.label2.Text=dataGridView1.CurrentRow.Cells["Name"].Value.ToString();

           frmshow.pictureBox1.Load(Application.StartupPath + "\\picure\\" + dataGridView1.CurrentRow.Cells["ID"].Value.ToString() + ".jpg");
        }


توضیح کد بالا:

خط 4 و 5  نیز شناسه و نام کاربر را نشان می دهد .

در خط7 ، همان طور که مشاهد می کنید  .  این کد زمانی اجرا می شود که کاربر از دیتاگرید ID مورد نظر خود را انتخاب کند و عکس کاربر در picbox نمایش داده می شود .

 

امروز اشتراک اینترنتم تمام میشه. اگر سوالی در این باره به وجود اومد میتونی از مدیریت  یا سایر دوستان بخوای که کمکت کنن .

 

سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,921 کاربر

دسته بندی ها

...