PDA

View Full Version : تشخیص نوع تصویری که کاربر انتخاب کرده و در picurebox بارگذاری شده



Naghibi
سه شنبه 17 شهریور 1394, 10:50 صبح
با سلام
من توی برنامه یه دکمه browse دارم که به کاربر امکان انتخاب تصویر مورد نظرش رو میده و بعد از انتخاب، تصویر در یه picture box بارگذاری میشه. حالا می خوام بدونم چه جوری میشه تشخیص داد نوع تصویری که در picture box لود شده، از چه نوعی است (bmp,jpg,png,...)!!! دستوری برای این کار وجود داره؟
پیشاپیش ممنون که منو راهنمایی می کنین:چشمک:

parvizwpf
سه شنبه 17 شهریور 1394, 11:00 صبح
if (OpenFileDialog1.ShowDialog() == DialogResult.OK)
string ext = Path.GetExtension(OpenFileDialog1.FileName);

محمد رضا فاتحی
سه شنبه 17 شهریور 1394, 11:00 صبح
اگه از OpenFileDialog استفاده می کنید می تونید از اینطریق پسوند فایل رو بدست بیاری

OpenFileDialog open=new OpenFileDialog();
open.ShowDialog();
string exe = Path.GetExtension(open.FileName);


در اینصورت exe یه همچین جیزی برات بر می گردونه مثلا jpg.
*****************
پ.ن: زمان ارسال خیلی با هم بود!!

Naghibi
سه شنبه 17 شهریور 1394, 11:15 صبح
ممنون اما من این فرآیند رو توی دکمه ذخیره اطلاعات نیاز دارم، یعنی زمانی که کار opendialog بسته شده و رویداد کلیک دکمه ذخیره فراخوانی شده. می خوام بدونم الان تصویری که توی picture box وجود داره چه پسوندی داره.

parvizwpf
سه شنبه 17 شهریور 1394, 11:19 صبح
خب متغیر نام پسوند رو کلی بگیرید تا همه جا بهش دسترسی داشته باشید.

محمد رضا فاتحی
سه شنبه 17 شهریور 1394, 11:21 صبح
خوب اگه از imagelocation استفاده میشه

string exe = Path.GetExtension(pic.ImageLocation);

Naghibi
سه شنبه 17 شهریور 1394, 12:11 عصر
نه از این روش ها هم نمیشه استفاده کرد:ناراحت:
برنامه داینامیک هست کاربر خودش PICTURE BOX ایجاد میکنه و خودش تصویرش رو مشخص می کنه. تعداد PICTURE BOX ها مشخص نیست و معلوم نیست تصاویر از چه مسیرهایی لود شده اند.

محمد رضا فاتحی
سه شنبه 17 شهریور 1394, 12:41 عصر
سلام مجدد....من دیگه از این بیشتر بلد نیستم!!!!!

string exe = "";
if (pictureBox1.Image.RawFormat.Equals(System.Drawing .Imaging.ImageFormat.Jpeg))
{
exe = ".jpg";
}
else if (pictureBox1.Image.RawFormat.Equals(System.Drawing .Imaging.ImageFormat.Gif))
{
exe = ".gif";
}
else if (pictureBox1.Image.RawFormat.Equals(System.Drawing .Imaging.ImageFormat.Png))
{
exe = ".png";
}

Mahmoud Zaad
سه شنبه 17 شهریور 1394, 13:14 عصر
سلام
در هنگام انتخاب عکس به همون روشی که در پست 2 گفته شد، پسوند رو در خاصیت Tag پیکچرباکس ذخیره کنید و در موقع نیاز همین خاصیت Tag رو بخونید. اینجوری نیازی به چک کردن فرمتهای مختلف هم نیست.

pbm_soy
سه شنبه 17 شهریور 1394, 14:58 عصر
نه از این روش ها هم نمیشه استفاده کرد:ناراحت:
برنامه داینامیک هست کاربر خودش PICTURE BOX ایجاد میکنه و خودش تصویرش رو مشخص می کنه. تعداد PICTURE BOX ها مشخص نیست و معلوم نیست تصاویر از چه مسیرهایی لود شده اند.

برنامه دینامیک هم باشه بلاخره خودتون نوشتید دیگه! بلاخره در جایی از برنامه یک تصویر یا چند تصویر در چند picturebox لود میکنید پس در همان محل میتوانید پسوندها را جای خاصی ذخیره کنید متغییر سراسری یا فایل و یا در حصوصیت tag خود picturebox

البته اگر از tag استفاده کنید هم باز نیازدارید به picturebox موردنظر دسرسی پیدا کنید وقتی بهش دسترسی دارید مثل گفته اون دوستمون نوع تصویر را مستقسم از خود picturebox بگیرید