نوشته شده توسط
honarestani
سلام به شما
یک برنامه ای باید بنویسم که عکس های بارگزاری شده رو درون picture box باید نشون بده و چون سایز عکس ها بزرگه خیلی ناجور میشه و از کادر میزنه بیرون .
از streatch image box هم نمیخوام استفاده شه یعنی راهی وجود داره که عکس باز شده کامل درون پیکچر باکس نشون داده بشه و اندازش کوچک باشه؟
اگه میشه لطفا در صورت امکان کمک کنید
با تشکر
این فرم
این کد
این هم سورس
706 بایت
دانلود
اگر نسبت طول به عرض مهم نیست که همونطور که saber67 فرمودند :
Private Sub load_Click()
Dim pic As StdPicture
cd.Filter = "JPEG|*.jpg|BITMAP|*.bmp"
cd.ShowOpen
Set pic = LoadPicture(cd.FileName)
With Picture1
.AutoRedraw = True
Picture1.PaintPicture pic, 0, 0, .ScaleWidth, .ScaleHeight
End With
End Sub
ولی اگه رعایت کردن نسبت ابعاد اش مهمه و نباید تصویر کشیده (چاق یا لاغر) بشه :
نسبت طول به عرض تصویر رو بدست می آورید (فاکتور) ، بعد بر اساس طول و عرض PictureBox تون مشخصه میشه که کدوم یکی از
این دو حالت مناسب ابعاد اون تصویره :
طول تصویر رو برابر طول PictureBox بگیرید و عرض اش بر حسب اون فاکتور تعیین بشه.
عرض تصویر رو برابر عرض PictureBox بگیرید و طول اش بر حسب اون فاکتور تعیین بشه.
Private Sub load_Click()
Dim pic As StdPicture
Dim factor As Single
cd.Filter = "JPEG|*.jpg|BITMAP|*.bmp"
cd.ShowOpen
Set pic = LoadPicture(cd.FileName)
factor = pic.Width / pic.Height
With Picture1
.AutoRedraw = True
.Cls
If factor * .ScaleHeight > .ScaleWidth Then
Picture1.PaintPicture pic, 0, 0, .ScaleWidth, .ScaleWidth / factor
Else
Picture1.PaintPicture pic, 0, 0, .ScaleHeight * factor, .ScaleHeight
End If
End With
End Sub