کوچک کردن تصویر و قرار دادن آن در Picture box
سلام به شما
یک برنامه ای باید بنویسم که عکس های بارگزاری شده رو درون picture box باید نشون بده و چون سایز عکس ها بزرگه خیلی ناجور میشه و از کادر میزنه بیرون .
از streatch image box هم نمیخوام استفاده شه یعنی راهی وجود داره که عکس باز شده کامل درون پیکچر باکس نشون داده بشه و اندازش کوچک باشه؟
اگه میشه لطفا در صورت امکان کمک کنید
با تشکر
این فرم
http://dlhome.persiangig.com/form.png
این کد
http://dlhome.persiangig.com/code.png
این هم سورس
706 بایت
دانلود
نقل قول: کوچک کردن تصویر و قرار دادن آن در Picture box
خوب شما می خوای عمل Stretch رو برای پیکچر باکس پیاده کنی یا میخوای عکستو هم اندازه picturebox کنی (یعنی با حفظ نسبت) ؟
نقل قول: کوچک کردن تصویر و قرار دادن آن در Picture box
اولی یعنی Stretch برای picturebox
نقل قول: کوچک کردن تصویر و قرار دادن آن در Picture box
سلام
چن بار تصمیم داشتم این کارو کنم ولی هر دفه یادم میرفت
Dim MyPicture As StdPicture
Set MyPicture = LoadPicture("C:\Users\Amir\Desktop\8_16.jpg")
Picture1.PaintPicture MyPicture, 0, 0, Picture1.Width * 1.76, Picture1.Height * 1.76, 0, 0, MyPicture.Width, MyPicture.Height
البته scalemode فرم روی twip باید باشه بر حسب محاسبات انجام شده :لبخند:(اگه به چیزی دست نزدی نمی خواد کاری کنی)
اون * 1.76 هم هی امتحان کردم تا بدست اومد و دقیقا نمیدونم واسه چیه؟! (کسی میدونه بگه لطفا)
نقل قول: کوچک کردن تصویر و قرار دادن آن در Picture box
یازی به کدنویسی نیست ، به ترتیب زیر عمل کنید:
یک picturebox به اندازه ذلخواه روی فرم قرار داده و تصویری به آن اضافه نکنید. حالا روی همین picturebox یک کنترل image قرار داده و خاصیت Stretch آنرا true و خاصیت enabeld آنرا false قرار دهید(نکته اصلی). هم اکنون تصویر خود را به این image اضافه کنید. حالا شما یک picturebox با تمام ویژگیها و خاصیت Stretch true دارید.
https://barnamenevis.org/images/buttons/reply_40b.png
نقل قول: کوچک کردن تصویر و قرار دادن آن در Picture box
خاصیت AutoRedraw پیکچر باکس رو True قرار بده
بعد از لود کردن عکس توی پیکچر باکس از کد زیر استفاده کن
Picture1.PaintPicture Picture1.Picture, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight
نقل قول: کوچک کردن تصویر و قرار دادن آن در Picture box
نقل قول:
نوشته شده توسط
honarestani
سلام به شما
یک برنامه ای باید بنویسم که عکس های بارگزاری شده رو درون picture box باید نشون بده و چون سایز عکس ها بزرگه خیلی ناجور میشه و از کادر میزنه بیرون .
از streatch image box هم نمیخوام استفاده شه یعنی راهی وجود داره که عکس باز شده کامل درون پیکچر باکس نشون داده بشه و اندازش کوچک باشه؟
اگه میشه لطفا در صورت امکان کمک کنید
با تشکر
این فرم
http://dlhome.persiangig.com/form.png
این کد
http://dlhome.persiangig.com/code.png
این هم سورس
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