PDA

View Full Version : سوال: نحوه کار PictureBox در رابطه با پارامتر ImageLocation



efarzad
سه شنبه 29 شهریور 1390, 16:12 عصر
سلام دوستان، خسته نباشید

وقتی که آدرس فایلی رو که روی هارد موجود هست رو به پارامتر ImageLocation یک PictureBox میدم، خطایی نمیده و اگر اون فایل عکس باشه، نشونش میده و در غیر اینصورت یک مربع کوچولوی سفید با ضربدر قرمز نشون میده که همه جا دیدیم ! به این معنی که نتونسته فایل رو لود کنه !
میخواستم بدونم چه جوری میشه فهمید که فایلی که بهش ارسال شده رو تونسته نشون بده یا نه !

با تشکر.

efarzad
چهارشنبه 30 شهریور 1390, 09:58 صبح
F1 F1

efarzad
یک شنبه 24 مهر 1390, 09:32 صبح
هر کسی بتونه جواب سوال منو بده، یعنی یک برنامه نویس واقعیه !!

mobtakercode
یک شنبه 24 مهر 1390, 15:48 عصر
جواب سوال شما ساده است و نیازی به حرفه ای هم نیست

if (pictureBox1.Image ==pictureBox1.ErrorImage)
MessageBox.Show("ErrorImage");
else
MessageBox.Show("YourImage");

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

اما اصولا زمانی picturebox نمی تواند تصویر را نمایش دهد که مسیر داده شده غلط است یا در این مسیر عکسی نیست بنابراین قبل از نمایش به چک کردن مسیر بپردازید.

efarzad
سه شنبه 03 آبان 1390, 09:19 صبح
با تشکر از جواب شما، باید بگم که این راه رو هم رفته بودم ولی جواب نگرفته بودم که شاید علتش همونی باشه که شما گفتی.
من میخواستم در زمانی متوجه این حالت شوم که مثلا کاربر به جای انتخاب یک عکس(حالا هر نوع عکس با هر پسوندی)، یک فایل ورد رو انتخاب کنه یا هر فایلی که یک PictureBox نتونه نمایش بده.
دست کاربر رو هم برای انتخاب هر نوع فایلی باز گذاشتم و برای همین نیاز به این جواب داشتم.
از اینکه جواب دادید ممنونم.

efarzad
یک شنبه 28 آبان 1391, 09:25 صبح
راه حلی پیدا کردم که شاید کامل نباشه و در حال حاضر بهترینه :




Public Shared Function IsImage(ByVal Path As String) As Boolean

Dim PB As New PictureBox
Dim Stream As FileStream = New FileStream(Path, FileMode.Open, FileAccess.Read, FileShare.Read)
Try
PB.Image = Drawing.Image.FromStream(Stream)
Return True
Catch ex As Exception
Return False
Finally
Stream.Close()
Stream.Dispose()
PB.Dispose()
End Try

End Function



آدرس فایل رو به این تابع آدرس ارسال میکنم. و بر اساس مقدار برگشتیش متوجه میشم که این یک فایل تصویری هست یا نه !

gilsoft
یک شنبه 28 آبان 1391, 11:31 صبح
سلام دوستان، خسته نباشید

وقتی که آدرس فایلی رو که روی هارد موجود هست رو به پارامتر ImageLocation یک PictureBox میدم، خطایی نمیده و اگر اون فایل عکس باشه، نشونش میده و در غیر اینصورت یک مربع کوچولوی سفید با ضربدر قرمز نشون میده که همه جا دیدیم ! به این معنی که نتونسته فایل رو لود کنه !
میخواستم بدونم چه جوری میشه فهمید که فایلی که بهش ارسال شده رو تونسته نشون بده یا نه !

با تشکر.

سلام دوست عزیز

من پیشنهاد میدم بجای ImageLocation از کد زیر استفاده کنی :

PictureBox1.Image = Image.FromFile("E:\Pics\HM.jpg")

و همچنین کد زیر رو هم میتونی Test کنی :

Dim MS As New MemoryStream
Try
PictureBox1.Image.Save(MS, PictureBox1.Image.RawFormat)
Catch ex As Exception
MessageBox.Show(ex.Message, "Please select the appropriate image", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

موفق باشید

HM2020
شنبه 28 بهمن 1391, 18:20 عصر
سلام

چطور میشه بکگراند پنل ( Panel ) عکس گذاشت با کد نویسی؟

AMIN_SG
شنبه 28 بهمن 1391, 18:30 عصر
سلام

چطور میشه بکگراند پنل ( Panel ) عکس گذاشت با کد نویسی؟



سلام اگه بخای از یه فایل local استفاده کنی
از این کد
Dim bg As New System.Drawing.Bitmap("Your path address")
Panel1.BackgroundImage = bg

و اگر هم بخوای از تو resourse لود کنی از این کد میتونی استفاده کنی

Panel1.BackgroundImage = My.Resources.imgname

HM2020
شنبه 28 بهمن 1391, 18:43 عصر
یه سوال دیگه

چطور با کد نویسی به کاربر اجازه بدیم در قسمت resourse عکس ، فایل ، و ... اضافه کنه؟