PDA

View Full Version : سوال: قرار دادن تصویر تو یه مسیر مشخص



aminaltavista
پنج شنبه 05 مرداد 1391, 16:05 عصر
سلام
چه طور میشه یه تصویر رو تو یه مسیر مشخصی قرار داد که هر موقع نیاز شد ازش استفاده کرد؟
منظورم از مسیر مشخص مثلا"newfolder\g.jpj" هست نه این که صرفا تو درایو خاصی ریخته شود!چون میخوام وقتی برا برنامه ستاپ درست کردم موقع اجرا خطا نده که مسیر عکس یافت نشد.:متفکر:

harani
پنج شنبه 05 مرداد 1391, 16:34 عصر
به نظر من تصویرت رو تو فایل bin>debug خود پروژت کپی کن بعد برای فراخوانی اونم از کد زیر کمک بگیر : (مثلاً یک عکس کپی شده میخوای تو پیکچر باکس نشون بدی)

PicutrBox1.Image = Image.FromFile(Directory.GetCurrentDirectory() + "//New Folder//Aks1.bmp");

در اینجا Directory.GetCurrentDirectory() z اشاره به فایل bin>debug خود پروژه دارد (یعنی نمیخواد آدرس رو فایل رو کامل بنویسید با این نصف راه رو رفتین)
موفق باشید .

alirezaahmadreza
پنج شنبه 05 مرداد 1391, 16:58 عصر
دوست عزیز شما میتونید عکستون رو در مسیر اجرایی برنامه قرار بدید و در هنگامی که خواستید عکس رو بخونید به وسیله این دستور شما میتونید ادرس مسیر اجرایی برنامه رو بگیرید و عکس خودتون رو درون فرم بارگذاری کنید.
شما توسط این دستور میتونید به ادرس عکستون دسترسی داشته باشید :
این دستور در محیط C#‎ ادرس مسیر پوشه اجرایی برنامه را به شما میدهد:

Application.StartupPath

این دستور مشابه دستور بالاست ولی در محیط WPF ادرس مسیر پوشه اجرایی برنامه را به شما میدهد:

System.IO.Assembly.GetExecutingAssembly().Location .Remove(Assembly.GetExecutingAssembly().Location.L astIndexOf("\\"))

البته بگم این دستور در WPF آدرس مسیر اجرایی برنامه را به شما میدهد ولی گاهی در ویندوز XP جواب درست را نمیدهد و زمانی که شما یک عکس را از بیرون وارد برنامه میکنید ادرس جاری عکس را باز میگرداند ولی در ویندوز 7 این مشکل را ندارد ولی پیشنهاد من استفاده از دستور اول در محیط WPF می باشد :

System.IO.Directory.GetCurrentDirectory()


خوب حالا که این هارو دونستی تنها کافی هست که عکس مورد نظر رو توسط دستور زیر درون پیکچر باکست قرار بدی :

pictureBox1.Image = Bitmap.FromFile(string.Format("{0}\\a.jpg", Application.StartupPath));


امیدوارم که با دستور string.Format آشنایی داشته باشی این دستور زمانی که شما میخواهید وسط یک رشته مقداری رو قرار بدید خیلی کاربرد داره جهت توضیحات بیشتر راجب این دستور پیشنهاد میکنم سرچ بکن

aminaltavista
پنج شنبه 05 مرداد 1391, 18:26 عصر
به نظر من تصویرت رو تو فایل bin>debug خود پروژت کپی کن بعد برای فراخوانی اونم از کد زیر کمک بگیر : (مثلاً یک عکس کپی شده میخوای تو پیکچر باکس نشون بدی)

PicutrBox1.Image = Image.FromFile(Directory.GetCurrentDirectory() + "//New Folder//Aks1.bmp");

در اینجا Directory.GetCurrentDirectory() z اشاره به فایل bin>debug خود پروژه دارد (یعنی نمیخواد آدرس رو فایل رو کامل بنویسید با این نصف راه رو رفتین)
موفق باشید .

دوست عزیز راه حل شما ساده تر و کوتاه تره ازتون ممنونم:قلب:

aminaltavista
پنج شنبه 05 مرداد 1391, 18:28 عصر
دوست عزیز شما میتونید عکستون رو در مسیر اجرایی برنامه قرار بدید و در هنگامی که خواستید عکس رو بخونید به وسیله این دستور شما میتونید ادرس مسیر اجرایی برنامه رو بگیرید و عکس خودتون رو درون فرم بارگذاری کنید.
شما توسط این دستور میتونید به ادرس عکستون دسترسی داشته باشید :
این دستور در محیط C#‎ ادرس مسیر پوشه اجرایی برنامه را به شما میدهد:

Application.StartupPath

این دستور مشابه دستور بالاست ولی در محیط WPF ادرس مسیر پوشه اجرایی برنامه را به شما میدهد:

System.IO.Assembly.GetExecutingAssembly().Location .Remove(Assembly.GetExecutingAssembly().Location.L astIndexOf("\\"))

البته بگم این دستور در WPF آدرس مسیر اجرایی برنامه را به شما میدهد ولی گاهی در ویندوز XP جواب درست را نمیدهد و زمانی که شما یک عکس را از بیرون وارد برنامه میکنید ادرس جاری عکس را باز میگرداند ولی در ویندوز 7 این مشکل را ندارد ولی پیشنهاد من استفاده از دستور اول در محیط WPF می باشد :

System.IO.Directory.GetCurrentDirectory()


خوب حالا که این هارو دونستی تنها کافی هست که عکس مورد نظر رو توسط دستور زیر درون پیکچر باکست قرار بدی :

pictureBox1.Image = Bitmap.FromFile(string.Format("{0}\\a.jpg", Application.StartupPath));


امیدوارم که با دستور string.Format آشنایی داشته باشی این دستور زمانی که شما میخواهید وسط یک رشته مقداری رو قرار بدید خیلی کاربرد داره جهت توضیحات بیشتر راجب این دستور پیشنهاد میکنم سرچ بکن

عزیز گرامی ازتون خیل سپاسگذارم! گفته شما یه خورده طولانی تر بود اما صحیحه ! متشکرم که در مورد WPF توضیح دادید:تشویق:

ali_habibi1384
پنج شنبه 05 مرداد 1391, 18:51 عصر
نياز به هيچكدام از اين كارها نيست عزيز.وقتي شما نياز داريد كه عكس يا مثلا فايل يا dll خاصي هميشه موقع build شدن همراه پروژه باشه كافيه اونو به پروژه add كنيد و بعد از add شدن روي properties اون آيتم بريد و گزينه Copy To Outputرو به CopyAlways تغيير بديد.حالا موقع build كردن خودش اونا رو همراه خودش مياره.:چشمک:

aliramazani
یک شنبه 22 فروردین 1395, 06:28 صبح
System.IO.Assembly.GetExecutingAssembly().Location .Remove(Assembly.GetExecutingAssembly().Location.L astIndexOf("\\")
در xaml چطوری باید اینکارو کرد؟